Midterm Flashcards
What is Modeling and Why Model
A model is an abstraction of the system aimed at simplifying the reasoning about that system. Modeling is a way to reduce complexity and deal with a system that is too complex or expensive to reproduce live
Define System
Organized set of communicating parts
Define a use case diagram
Focus on the behavior of the system from an outside point of view
Results in the formation of Actors within the system
Use Cases Capture Responsibilities
Describe a class Diagram
Describe the system in terms of objects/classes/attributes
Describe a view in terms of modeling
subset of a model that allows you to view a complicated part more easily
Sequence Diagram
Represent the interaction that take place between those objects
Actors
External Entities that interact with the system use case is from an actors point of view
Describe the iterative Process
- Each iteration delivers a unit of functionality
- Encourages early, frequent testing
- Large projects may involve architecture and modeling • Each iteration involves a number of the practices
Describe Risk Management
- One of the primary activities of Software Engineering • Risk is often unavoidable but manageable
- Validate concepts and approaches early
- Risk areas
- Performance
- Security
- Scalability • Testability • Usability
Describe a Domain Model
- Describes the concepts in the domain
* Captures relationships • No design concepts
Describe the 4+1 view
Logical View Developmental View Physical View Process View Scenarios
Software Development Activities (TAIROS)
- Requirements Elicitation • Analysis
- System Design
- Object Design
- Implementation • Testing
SE Management Activities
- Communication
- Rationale management
- Configuration management • Project management
CS361
Non-Functional Requirements
- Address qualities of the system
- Impacts architectural decisions
- Architectural decisions impact qualities
Role of Architecture
- Assignment of subsystems • Development teams
- Processes and processors
- Address non-functional requirements • Reliability
- Performance • Scalability
Layering Architecture
- Create abstractions to represent services
- Downward dependencies
- Multiple clients
Partitioning Architecture
Peers are created to reduce complexity
• May be dependent on similar lower layers
Design Results in
Design Goals
Software Architecture
Boundary Use cases
What is Software Engineering?
- Design and development of software products
- Production of programs that meet specifications • Demonstrably accurate
- Management of the software process
- Produced on time & within budget