Podcast
Questions and Answers
Which of the following quality attributes ensures that the software can be modified easily?
Which of the following quality attributes ensures that the software can be modified easily?
What does a use case primarily define?
What does a use case primarily define?
What is represented by ovals in use case modeling?
What is represented by ovals in use case modeling?
Which term describes a communication between an actor and a use case?
Which term describes a communication between an actor and a use case?
Signup and view all the answers
In requirement modeling, what is the primary focus of use case modeling?
In requirement modeling, what is the primary focus of use case modeling?
Signup and view all the answers
What does the Unified Modeling Language (UML) primarily provide?
What does the Unified Modeling Language (UML) primarily provide?
Signup and view all the answers
Which of the following is NOT a type of view in software architecture?
Which of the following is NOT a type of view in software architecture?
Signup and view all the answers
What does the high-level software architecture primarily describe?
What does the high-level software architecture primarily describe?
Signup and view all the answers
Which of the following accurately describes 'programming-in-the-small'?
Which of the following accurately describes 'programming-in-the-small'?
Signup and view all the answers
What major issue does software engineering seek to address?
What major issue does software engineering seek to address?
Signup and view all the answers
Which of the following is considered an example of application software?
Which of the following is considered an example of application software?
Signup and view all the answers
What is the purpose of requirement gathering in software projects?
What is the purpose of requirement gathering in software projects?
Signup and view all the answers
In the context of software architecture, what does the structural component view focus on?
In the context of software architecture, what does the structural component view focus on?
Signup and view all the answers
Study Notes
Modeling
- Models abstract a system at various levels of detail and precision
- Object-oriented methods address software modifiability, adaptation, and evolution
Unified Modeling Language (UML)
- A graphical language for describing models
Software Architectural Design
- Separates overall system structure and interconnections
Programming-in-the-Small
- Detailed design of individual components
Programming-in-the-Large
- Emphasizes component interconnections
Levels of Software Architecture
- High level: Decomposes the system into subsystems
- Low level: Decomposes subsystems into components
Multiple Views of Software Architecture
- Use case view: Input for developing new features
- Static view: Relationships and associations
- Dynamic state machine view: Internal control and sequencing
- Structural component view: Interconnected parts
- Dynamic concurrent view: Distributed modes communicating by messages
- Deployment view: Component assignment to hardware tools
Software
- A set of machine-readable instructions for specific functions
Software Types
- System software: e.g., Operating System
- Programming Tools & Language Translators
- Application Software:
- Custom software
- Generic software
- Embedded software
Software Engineering
- Analytical approach to design, development, use, and maintenance
Ad hoc programming style
- Build & fix, code and fix
Software Crisis
- Projects failing to be reliable, on time, or within budget
Architecture
- Design of application software, protocols, and expansion means
System
- Collection of components, items, or equipment for a specific function
Architectural Design
- Used for defining complex systems for processors
Common Activities in Software Projects
- Requirement and Specification
- Domain Analysis: Understanding the background
- Defining the problem: Determining the precise problem to solve
- Requirement Gathering: Obtaining all ideas
- Requirement Analysis: Organizing the gathered information
- Requirement Specification: Defining what and how the software should function
- Design
- Modeling
- Use case modeling: Representing the sequence of actions performed
- Structural modeling: Representing things as classes and objects
- Dynamic & Behavioral Modeling: Modeling the activities that can be performed
- Programming: Translating design into programming language
- Quality Assurance: Reviews, inspections, and testing
- Deployment: Distributing and installing the software
Requirement Modeling
- Actors and use cases: Describing what the user expects from the system
Quality Attributes
- Correct
- Complete
- Unambiguous
- Consistent
- Verifiable
- Understandable by non-computer specialists
- Modifiable
- Traceable
Use Case Modeling
- Defines the functional requirements of the system in terms of actors and use cases
Use Case
- Defines the sequence of interactions between actors and the system
- Represented by ovals
Main Sequence
- Most common sequence of interactions between the actor and the system
Alternative Sequence
- Frequent interactions between the actor and the system
Scenario
- Each sequence through the use case
Association
- Communication between an actor and a use case
- Represented by lines
Actors
- An external user
- A role played in the application domain
- Represented by stick figures
- Primary actors: Initiate a use case
- Secondary actors: Participate in the sequence
System Boundary
- The scope or limits of the system
Software Requirement Specification
- A traceable document
Relationships
- Dependencies between use cases
- Include: Occurs when there is a common sequence
- Extend: Models alternative paths a use case might take
Activity Diagram
- Shows the flow of control and sequencing among activities
- Represents the sequence of activities, decisions, nodes, loops
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Explore the fundamentals of software architecture, including various modeling levels and the use of Unified Modeling Language (UML). This quiz covers both small and large programming practices, as well as multiple views of software architecture. Test your knowledge on how systems are structured and interconnected.