POM L4 Flashcards
Inherent Problems with Software Development
- Requirements are constantly changing (Customers don’t know all the requirements in advance)
- Frequent changes are difficult to manage
- There is more than one software system to consider
Software Life Cycle (SLC, Software Process)
• Set of activities and their relationships to each other to
support the development of a software system
Software life cycle model
• An abstraction that represents a software life cycle for the purpose of understanding, monitoring, or controlling the development of a software system.
Methodology issues
Methodologies provide general principles and strategies for selecting methods and tools in a given project environment when errors can occur
Key questions for which software methodologies usually provide guidance
How much involvement of the customer/ planning/ reuse/ modelling/ process/ control and monitoring.
Where do we need Models?
- Communication (provides a common vocabulary)
- Analysis/Design : (enables reasoning about the future system)
- Archival (for sorting the design and rationale of an existing system)
Pros and Cons of Modelling
+ complexity reduction
+ makes implicit knowledge about the system explicit
+ formalizes knowledge so that participants can share it
- Models can become complex
Models that support Communication (also called conceptual models)
- Most often used in the early phases of a project and during informal communications (The model does not have to be complete or consistent)
- Used only to communicate idea to a person
- Communication media such as a whiteboard, a mockup or even a napkin design
Models that support Analysis and Design
also called specification models
- provides a representation that enables developers to reason about the system
- The model is used to communicate the idea to a tool (it needs to be consistent and complete)
- UML is preferred
Managerial Challenges of Modeling
- Formalizing knowledge is expensive (Antipattern: Analysis paralysis)
- Models introduce redundancy (If the system is changed, the models must be changed. If one model becomes out of sync, it loses its value)
- Models become complex
Typical Software Life Cycle Questions
Which activities should we select for the software project?
• What are the dependencies between activities?
• How should we schedule the activities?
Tailoring
Adjusting a lifecycle model to fit a project
Naming: Adjusting the naming of activities
Cutting: Removing activities not need in the project
Ordering: Defining the order the activities take place in
Modeling a Software Lifecycle
- Functional (Scenarios, user stories, use case model)
- Structural (object identification, class diagrams)
- Dynamic (sequence diagrams, statechart and activity diagrams)
Activity Diagram for the Life Cycle
Software development goes through a linear progression of states:
1) problem definition activity
2) software development activity
3) system operation activity.
Two Major Views of the Software Life Cycle
- Activity-centered (SLC is set of development activities)
- Entity-centered (SLC is creation of deliverables)