Csc 302 Notes

Embed Size (px)

Citation preview

  • 7/28/2019 Csc 302 Notes

    1/3

    General & Modeling

    Large means anything nontrivial that benefits from paper planning and tools, and will be used by someoneother than the developer

    Build models to help during design, analyze existing systems, help us communicateSoftware Architecture

    avoid unnecessary coupling and cohesion - spaghetti code layered Model View Controller, Model View Presenter Conways law: architecture of a system tends to mirror the communication and structure of a team. if you

    structure the team in a different way, it can impact archit.

    Sequence Diagrams

    shows well defined order, over time. used for when looking at different design options, elaborating on use cases alt: alternative multiple fragments. guard condition must be true to execute loop: may execute multiple times, as indicated by the guard neg: invalid interaction opt: fragment is optional. works like an if condition par: fragments run in parallel ref: reference to a interaction that's defined in another diagram region: a critical region; only one thread at a time.

    Use Case Diagrams

    captures system requirements. how users interacts with a system. short phase to sum functionality."actors" play the roles of people. relationships between use cases.

    SDLC (Systems Development Life Cycle)

    Waterfall: Requirements -> Design -> Implementation -> Verification -> Maintenance Pros: Enforces discipline. Defined start and end. Progress can be identified. Emphasis on requirements

    and design helps create better code/save time. Improves quality by doing reqs and design first. Easy to

    catch flaws. Easy to transfer knowledge through team.

    Cons: Customers might change their mind, particularly with requirements and design. May be past thatpoint already. Waterfall assumes that design can be easily translated into a real product, but developers

    can run into roadblocks. If a re-design is required it can screw the distinctions between the phases of

    the model. Waterfall also suggests a clear division of labor, etc "developers, programmers and testers"

    but in reality no such division really exists.

    Gantt Charts

    Pros: Useful for small projects. Presents phases & activities of project work breakdown schedule well. Cons: Wrongly equated with project design in the sense they try to define project work breakdown at

    the same time as defining schedule activities. Messy and not useful for large projects with many

    activities; hard to display. Communicates little info per area displayed. Only represent only part of cost,

    time and scope of project. Do not represent size of project relative to size of work elements. Magnitude

    of behind-schedule condition easily miscommunicated. Fixed height of bars, so they can misrepresent

    time-phased workload. Two activities may appear to be same size, but one can have 1 guy working on

    it, the other a whole team.

  • 7/28/2019 Csc 302 Notes

    2/3

  • 7/28/2019 Csc 302 Notes

    3/3

    Quality

    value to someone, fitness to purpose, exceeding customer expectations quality assurance focuses on V/V on quality of product quality frameworks such as six sigma six sigma is not good for software because: depends on human behavior, not predictable. can't measure

    degree of conformance. mapping between software faults and failures is many to many. not all failures

    result from the software itself. cannot accurately measure # of faults in software

    six sigma typical defect rate: would demand 0.0034 faults/KLOC ??Capability Maturity Model (CMM)

    1. Initial: the starting point for use of a new or undocumented repeat process2. Repeatable: the process is at least documented sufficiently such that repeating the same steps may be

    attempted

    3. Defined: the process is defined/confirmed as a standard business process, and decomposed to levels 0, 1and 2 (the last being Work Instructions).

    4. Managed: the process is quantitatively managed in accordance with agreed-upon metrics.5. Optimizing: process management includes deliberate process optimization/improvement.

    Release Planning

    What are we building? By when will it be ready? How many people do we have? Big bang release: CD to store. Now things are done continuously. Still need to plan though. Still need to

    market things. Sales team needs to know when you will deliver so they can sell it.

    Essence of planning is uncertainty. Don't resist changes. If you don't plan, move to CMM level 2. Why plan? external pressures. if it was just for us (fun), not needed. With good data, good managers make good decisions. Capacity vs. requirements. do we have the capacity to fulfill all requirements? prioritized list of features? For resources pick calendar days and determine work factors Put a random bookmark at end of sprint. Quarterly release is an example for sales/marketing. Requirements or Features (F): prioritized potential requirements from wish list. planning poker estimation Available resources (N): pick a value for T (workdays until release/sprint/horizon) Capacity Constraint: F = N x T plan must respect capacity constraint keep plan up to date with most current estimates always dealing with overflow: move dates, cut features, combination, adding developers is rarely helpful to plan