SSW 540 Final Exam Study Set
56. How would you verify the requirement, "Ticket seller shall log into the system by providing his/her username, password, and other relevant information."
"Relevant information" is way too vague - need to be more specific!!
77. What is another common term for an architectural pattern?
"Styles"
70. What is the 4 + 1 view model of software architecture?
A multi-view model of software architecture • How system is decomposed into modules • How run-time processes interact, or different ways in which system components are distributed across a network • Centered by use case views/scenarios that encompass the requirements used as test cases for the architecture • Logical view: The system's data and methods represented by objects and object classes • Process view: "Alive view" of processes which are interacting • Physical view: How software is distributed across hardware and communications • Development view: How software is decomposed for development
66. What does a context model show?
A static view that illustrate the operational context of a system, i.e. what is outside the system's boundaries • i.e. the social and organizational concerns that affect the placement of system boundaries • i.e. the system and its relationship with external systems that are utilized or depend on that system
95. What is a design pattern?
A way of reusing abstract knowledge about a specific problem and its solution • Sufficiently abstract to be able to reused in different settings • Make use of object-oriented characteristics such as inheritance • Any sub-class inherits the attributes and behaviors of the more general class (or classes)
75. What is meant by the component level?
Collections of objects and object classes that can be reused in application systems • E.g. Component frameworks
38. What does it mean for a requirement to be complete and consistent?
Complete: Include all required capabilities and constraints • Consistent: No conflicts or contradictions in the system descriptions of capabilities and constraints
39. What is a non-functional requirement?
Constraints on the services or functions offered by a system • E.g. timing constraints, development process tradeoffs, standards, etc. • Often applies to characteristics of the system as a whole, rather than individual features or services • Define how system operates, not what it does • Usability • Performance • Scalability • Maintainability • Affect overall architecture of a system rather than the individual components • Could generate related functional requirements which define required system services • Could generate requirements that restrict existing requirements • Describe software system properties • Drive decisions about • Content of and connections among components • Architectural patterns • Implementation strategies • Technological platforms
20. What are some factors to evaluate a system's effectiveness? Why may it be difficult to do so?
Contributors to the failure of a system • You can't really determine if a machine would stop - it stops if and only if it stops, which would be a contradiction • System reliability • Reliability is hard to determine if the system is designed well • A fault could remain hidden if you don't run the part of the system with the fault in it • Reliability metrics could give a false picture of the overall system reliability (due to relationships amongst components) • System speed and efficiency • Acceptability • Dependability and security • Maintainability
3. What is involved in the software development step?
Converting a system specification into an executable system via design and implementation
68. What is an object class?
A general definition of one kind of system object • Object: A representation of something in the real world, e.g. a patient, prescription, doctor, etc. • Each object is an instance • An entity that knows how to do things
49. What is a goal?
A general intention of a user (e.g. ease of use) • Convey the intentions of system users but are not generally verifiable • A verifiable NFR would include a measure that could be objectively tested
69. What is an association?
A link between classes which indicates that a relationship exists between the classes
9. What does software maintainability mean?
The software is easy to test
100. What are some factors to evaluate in determining whether or not to reuse a component?
The software's development schedule • The expected timeline for the software • The development team's background, skills, and experience • How critical the software and its non-functional requirements are • The application domain • The software's execution platform
65. What is meant by the "static view" in UML?
The structure of business objects that are sent as message arguments from the sender to the receiver of the message • Ensuring semantic integrity - structure and content of business objects should be clear and easy to understand for all involved parties • Information must be coherent so that involved parties can interpret it • Business objects should be reusable • Business objects have to be complete - can satisfy intermittent demands and leave no room for ambiguity
42. What does accommodation mean?
The use of explicit non-functional requirements to address the properties that a system must have so that it may accomplish its required tasks
29. What is a use case?
They reflect a software system's needed functionality • Define the interactions between a role (i.e. an "actor") and a system needed to accomplish a goal • Full set should describe all possible interactions within a system • Supported by high-level graphical models and diagrams
84. What are some qualities of embedded systems?
They run continuously and do not terminate • Interactions with the system's environment are unpredictable • Direct hardware interaction could be an essential component of the system • Issues of safety, reliability, and physical limitations may greatly influence the system's design
78. What are the primary purposes of architectural patterns?
To provide a proven method for sequencing execution and passing control • Means of representing, sharing and reusing knowledge • Stylized description of good design practice, demonstrated through trials and testing in different environments • Includes information about when they are or are not useful • Helpful to represent using tabular and graphical descriptions • Helps us to direct re-use known means for achieve our goals • Frees us to focus on the unknowns • Unknown direction of changing requirements • The actual impact of constraints • The system's intended environment
14. What are some factors that could help with the implementation of Agile for a large software system?
Up-front requirements • Multiple customer representatives • Increased documentation • Common tooling languages and processes across development teams • Alignment of resources and expertise across teams • Implementing Scrum across multiple teams • Role replication - each team with a Product Owner for a work component, as well as a ScrumMaster (responsible for clearing obstacles, establishing a collaborative environment by addressing team dynamics, protecting the team from outside interruptions and distractions) • Use of Product Architects - Product architects across teams collaborate to design and evolve system architecture • Release alignment - Ensuring that product releases from each team are aligned for the production of a demonstrable and complete system • Scrum of Scrums - Daily procedure where team representatives meet to discuss progress and plan work
12. What are some of the techniques involved with Agile development?
User stores that express requirements • Pair programming that promote collective ownership of code • Test-driven development - testing after every change of the code • Refactoring - ensuring and maintaining code simplicity • Continuous integration • Small system releases, promoting frequent changes • Extensive customer involvement in creation and prioritization of user stories, test development and validation, and release acceptance (i.e. gathering feedback)
5. What factors go into architecting a system?
What technologies used, how deployed (e.g. laptop, on the cloud, self-contained app, what security)
86. Power timing analysis
Work backwards! o 6 ms, 5 ms in between each reading o 50 - 24ms = 26ms to do the 3 readings (8 ms in between from a pure mathematical standpoint), but want more than 2 ms cushion to account for jitter
16. When might one consider using Waterfall in lieu of Agile methodologies?
You can mix and match Agile and Waterfall. Waterfall is good for mission-critical initiatives - emphasis on documentation and thorough planning and analysis. Agile has a relative lack of documentation and has an emphasis on delivery - it requires discipline and works better with experienced programmers. • Agile is reliant on customer availability and involvement • Some customers could be more familiar with traditional project plans • When teams must be large • When team membership changes frequently
21. What is meant by the emergent properties of a system?
The properties of the system of a whole that depend on the system components and their relationships • Practically impossible to anticipate all relationships amongst components • Can be derived from the properties of components within a system • Components also involves its operations in combination with its constituent parts! • Can only be fully assessed and measured once all the components have been integrated within the system
35. What does requirements engineering entail?
Establishing the services that a customer would require from a system, and the constraints under which the system would operate and be developed. These constraints vary based on the type of software to be build and the type of organization that will be building it. • Business requirements specification • Feasibility study • User requirements elicitation • User requirements specification • Prototyping • Systems requirement elicitation • Systems requirements specification and modeling • Reviews
25. What are some complications around the evolution of a system?
The rationale behind the original designs of a system can often be unrecorded. Those managing the system must deduce for themselves why certain product directions were made • Systems can tend towards becoming more corrupt as they age and the costs of making further changes increases
43. Requirement to determine if there should be a choice on a menu or button - functional or non-functional requirement?
Functional
45. Primary characterization is a verb or activity - functional or non-functional requirement?
Functional
47. Specification of a system feature or work to be completed - functional or non-functional requirement?
Functional
91. What are the components of a pipe and filter architecture?
Functional transformations process inputs to produce outputs • Batch sequential transformational model • Used in data processing systems • But not good for interactive systems • The embedded variation is called a Process Pipeline pattern
41. What does modularization mean?
Functionality provided through distinct modules (components) that enable the easy addition or removal of those modules • Mitigate the risk of losing a non-functional constraint or quality due to the removal of a component
52. What is involved in requirements discovery?
Gathering information about required and existing systems • Distilling into user and system requirements • Interviewing • Ethnography • Prototyping • Stories • Scenarios • UML use cases
63. What does a state diagram show?
How the system reacts to internal and external events • Often used for modelling real-time systems as they show the system's responses to stimuli • Show system states as nodes • Events are arcs between these nodes • System moves from one state to another when an event occurs
71. What are some questions that could be helpful in evaluating the design of a software architecture?
How will the system's structural components be decomposed into sub-components? • How will the system be distributed across hardware cores or processors? • Which architectural patterns or styles could be most appropriate for the performance needs of the system? • How will the operations of the system's components be controlled? • What is the most ideal organization of the architecture to deliver the system's non-functional requirements?
18. What are some other software process models besides Waterfall and Agile?
Incremental development • Interleaved specification, development, and validation • Plan-driven or Agile • Integration and configuration • Assembly of system from existing configurable components • Plan-driven or Agile
27. How might a system think about coping with requirements changes?
Incremental development processes • Software prototyping • Throw-away - Helps with running back-to-back tests, but potentially has lack of solid foundation, documentation, and/or quality Requirements are not well understood • Evolutionary - Could be first increment in incremental development process that will serve as probable basis for actual implementation Technology is untested, but requirements are very well understood
13. What are some of the disadvantages of using Waterfall methodologies?
Inflexible partitioning - difficult to respond to changing customer requirements • Good for well-understood requirements and limited changes throughout development cycle
11. What are some of the advantages of using Agile methodologies?
It is easier to change ongoing processes to reflect changing customer requirements
23. What may most complicate the development of a system?
Its complex relationships with organizational objectives, which are constantly shifting over the course of time, and the system's impact will vary with those changes
93. What is a rule-based architecture?
Knowledge sources and/or knowledge bases determine how the program will react to input (i.e. the state of the data determines the reaction)
79. What is each component in the Model-View-Controller pattern responsible for?
Model • Manages the system data and associated operations on that data • Encapsulates application state, i.e. process that you're operating • Notifies view of state changes (i.e. through change notification) • View • Defines and manages how the data is presented to the user • Renders model In different ways to different users Independently of changes that could take place in the model • Not ideal that a view might dramatically change every time • Requests model updates (through state query) • Separates the presentation from the model • Send user events to controller • Controller • Manages user interactions and passes those interactions to the View and Model • Maps user actions to model updates Through state change event • Selects view
73. What is meant by the abstraction level?
No direct reuse of software • Use knowledge of successful abstraction to design software • Reuse architectural styles and design patterns • Determination of appropriate tradeoff between security and usability
98. Are process diagrams part of the UML family of diagrams?
No!
44. Requirement that focuses on the experience of the user - functional or non-functional requirement?
Non-functional
46. Primary characterization is an adjective or quality - functional or non-functional requirement?
Non-functional
48. Specification of system property or character of work - functional or non-functional requirement?
Non-functional
24. Can a system's success be objectively measured?
Not really. Success is a judgment when the system is deployed and operating rather than when it was originally procured
88. What is meant by non pre-emptive scheduling?
Once a process has been scheduled for execution, it either runs to completion or is blocked for some reason (e.g. waiting for an input or output)
97. Are methods or attributes associated with interfaces?
Only methods!
17. What are the phases of Scrum?
Outline - general objectives for the product and software architecture design • Fixed-length sprint cycles - each one developing an increment of the system • Project-closure phase - Complete documentation, conduct retrospectives on learnings from project
6. What are the stages of the Software Development Life Cycle (SDLC)?
Planning, analysis, design, implementation, testing & integration, maintenance
57. What are traceability policies?
Policies that define the relationships between each requirement and between the requirements and system design that should be recorded
53. What is involved in requirements specification?
Process of writing down user and system requirements • Detailed requirements that include technical information • Natural language • UML graphical notations • Formal language • Mathematics • Finite-state machines
40. What are some examples of types of non-functional requirements?
Product requirements • Efficiency requirements • Dependability requirements • Security requirements • Organization requirements • Environmental requirements • Operational requirements • Development requirements • Legislative requirements • Accounting requirements • Safety/security requirements
96. What does host-target development refer to?
Production software does not execute on the same computer as the software development environment • The host system is the computer you develop your program on • The target system is the computer that the program is executed on • Platforms have different architectures beyond just the installed software
8. What does software dependability mean?
Program runs and does what it's supposed to do every single time
80. What are some pros and cons of the MVC pattern?
Pros • Helpful in illustrating the multiple ways to view and interact with data • Helpful when future requirements for interaction and presentation of data are unknown • Allows data to change independently of representation • Allows representation to change independently of data • Presentation of same data can be made in different ways - changes made in one representation is displayed in all of them • Removes viewing dependency from model • Model is the data and does not do anything with it, which could enable code reuse (e.g. reusing a browser over and over) • View is reusable without modification even when controller changes • Controller can interpret users' actions and provide data to the view • View displays model's data and user actions is sent to controller • Reduces complexity, adds flexibility and reusability • Cons • Can complicate a model when the data model and interactions are relatively simple
19. What are some of the pros and cons of incremental software development?
Pros • Reduced cost of accommodating shifting customer requirements • Continuous updated feedback on completed work • Easier to rapidly and steadily deliver and deploy software to the customer • Better to fail incrementally "small" than very big • Program specification, design and implementation are inter-leaved • Stakeholders involved in version specification and evaluation through frequently delivered new versions • Extensive tool support (e.g. automated testing tools) to aid in development • Less emphasis on documentation and more on working code • Cons • Less documentation = more difficult to communicate processes to relevant stakeholders • As more increments are added, the system structure is steadily degraded • Can be difficult to scale for large systems Not always possible to have teams communicating with one another regarding the interaction of subsystems Can be collection of communicating, but separate systems where efficient coordination may not be entirely feasible • Less flexible in dealing with external constraints of rules and regulations
26. What are some of the pros and cons of reuse-based development?
Pros • Reduced costs and risk - less original development of software • Relatively quicker system delivery and deployment • Containers on VMs can promote re-use • Cons • Risk of requirements compromises when system does not completely fulfill user needs Effort to extend to full needed capabilities can be extremely considerable • Relatively less control over the management and evolution of elements that are reused rather than self-created and more completely understood
1. What's a common term for a software specification?
Requirements
54. What is involved in requirements analysis?
Requirements classification and organization • Requirements prioritization and negotiation • Especially with stakeholders holding conflicting requirements • Resolution is essential to progressing with the project
10. What are the steps within the Waterfall methodology?
Requirements gathering • Prepare a requirements document • Write and groom use cases • Design software • Determine appropriate architecture for the system • Map out relevant stakeholders • Software implementation • Construct the software • Construct data storage and retrieval systems • Software verification • Install system • Test and debug system • Software maintenance • Check for errors • Optimize system capability
83. What is the difference between an embedded system and something like a web-based system or a personal software system?
Responsiveness in real-time! • React to events generated by hardware and issue control signals in response to them • Software for systems is embedded in hardware (often in read-only memory) and responds to events from system's environment • Use different architecture patterns than those traditionally found in information systems
76. What is meant by the system level?
Reuse of entire application systems, e.g. COTS (commercial off-the-shelf) • Packaged solutions which are adapted to satisfy the needs of the purchasing organization, rather than the commissioning of custom-made solutions
74. What is meant by the object level?
Reuse of objects from a library rather than self-written code • E.g. Python language libraries
90. What are some examples of scheduling algorithms?
Round-robin • Rate monotonic • Shortest deadline first
87. What are the essential components of a RTOS (real-time Operating System)?
Scheduler • Resource manager • Dispatcher • Responsible for process management and resource (i.e. processor and memory) allocation • Do not usually include file management facilities • Ensure continuous availability through non-stop configuration and fault management sub-systems • Do not work with that much data • As soon as a resource is available, your process is placed into the queue and run • Stripped down from the unnecessary components of kernel
81. What are some qualities of a client-server architecture?
Set of stand-alone servers that provide specific services • E.g. printing, data management • Set of clients calling on specific services • Network which enables clients to access specific services • Often implemented with a service on multiple redundant computers • But can also be implemented on a single computer
31. What is a sequence diagram?
Show the sequence a system's event processing
28. What is involved within the processes of software process improvement?
Software measurement • Quantitative data whenever possible • Clearly identify/define process before the measurement! • E.g. total effort in person-days, calendar time needed to complete a process, number of defects discovered • Analysis • Process change
51. What are some issues that can arise when eliciting requirements?
Stakeholders who don't know what they really want • Stakeholders who express their desires using their own language, i.e. not using a common framework • Conflicting requirements when working with multiple stakeholders • Organizational and political factors influencing the requirements • Shift in requirements • New stakeholders • Change of business environment
92. What are the qualities of a repository architecture?
Sub-systems which exchange data • The shared data is held in a central database or repository which can be accessed by all of the sub-systems • Each sub-system maintains its own database and explicitly passes data to other sub-systems • Good for sharing large amounts of data as it is an efficient data sharing mechanism
82. What are some qualities of a layered architecture?
System is organized into a set of layers (or abstract machines) • Each layer provides a set of services to the layer above it • Supports incremental development of sub-systems in different layers • When a layer interface changes, on the adjacent layer is affected • Layers can be distributed across computer instances (i.e. vertically) • Used to model the interfacing of sub-systems
99. What levels of software component reuse are available?
System reuse • Commercial Off-the-Shelf systems • Application reuse • Intact or developing application families • COTS and custom software applications Can be used stand-alone or integrated together • Component reuse • Sub-systems to single objects • Much less common • Object and function reuse • Specific to the programming language • Functions found in publicly-available libraries • Must be very aware of how the function was intended to be used
59. What are some possible "views" to model for a software system?
System view - Evaluating fit of software with other software • Logical view - Flow processing needed to address problem • Physical view - What is the placement of software on the distributed hardware elements? • Process view - What are the concurrent software actions needed? • Developer view - What responsibilities does each member of the development team have? • User view - How do users interact with the software? • What data are needed? • What processing needs to happen? • Who are the involved actors? • Context of the system • Detailed instructions • System structures
22. What is meant by the non-deterministic properties of a system?
Systems may not necessarily produce the same exact output every time it is presented with the same input • Because of humans! (i.e. socio-technical systems) • Software itself would be deterministic (a computer can only do what it is told!)
50. What is involved in requirements elicitation and analysis?
Technical staff working with customers to more deeply understand application domain • Services system should provide • System's operational constraints • Looping in all required stakeholders
61. What does an activity diagram show?
The activities involved in a process or in data processing • Often used to define business process models • Bridging the software context and software interaction perspectives • Reveal how software is used in broader business processes
60. What does a use case diagram show?
The interactions between a system and its environment
62. What does a sequence diagram show?
The interactions between actors, the system, and system components • The sequence of interactions that take place during a particular use case or use case instance • Begin on left and move right according to time • Responding actions are dashed horizontal lines • Annotated arrows that indicate interactions between objects • "Lifelines" where dotted lines become rectangles when an object or actor is involved in an interaction • Specification of interface detail
64. What does a class diagram show?
The object classes within a system and the associations between them • Illustration of things the component knows, and things the component knows how to do • Used for interface specification
67. What does a dynamic model show?
The organization of the system when it is executing
94. What are some qualities of an application architecture?
Application systems developed to reflect common application requirements across business domains • Architecture for software system that may be configured and adapted for a system that meets specific requirements • Can be used as a design checklist • Starting point for architectural design • Helps with assessing components for reuse
58. What does software architecture serve to do?
As a critical link between requirements and design • Should support stakeholder communication and discussion • Gauge of whether a system can meet its non-functional requirements • Ensuring large-scale reuse - development of product-line architectures which can be reusable across a range of systems • Identification of system interfaces and constraints
34. Who are some of the stakeholders who may be invested in the development of a software system?
End-users • Managers • Engineers in the development process • Testers and maintenance engineers • Domain experts • Trade unions • Regulatory agencies
89. What is meant by pre-emptive scheduling?
An executing process may be stopped if a higher priority requires service
85. What is meant by timing analysis?
Calculation of how often each process in the system should be executed so that all inputs are processed and system responses (i.e. outputs) are produced in a timely fashion • How frequently should each process execute? • How should processes be scheduled by the real-time operating system? • Deadlines • What are the times by which stimuli must be processed and the system responds? • How frequently must a process execute in order to meet its deadlines? • What is the required execution time? What is the time needed to process the stimulus and respond?
4. What is involved in the verification and validation step?
Ensuring that a system conforms to its specification and meets the system customer's requirements
7. What does software security mean?
Ensuring that programs are not compromised by external factors
15. What sorts of products might Agile methodologies be good for?
Developing small/medium-sized products • Custom implementation of a system within an organization • Ideally few external rules and regulations affecting software • Organizations with a skilled, experienced, committed development team
30. What are some of the weaknesses with use cases?
Difficult to gauge the security and performance parameters of a system • Some level of user training required
32. What is an activity diagram?
Display a system's flow of activities
2. What are the factors that must be taken into account when creating specifications for software?
Establishing the services required • Constraints on a system's operation and development • Software feasibility, security, priority, and deadline • All within the allocated budget!
36. What is a requirement?
Could be a high-level abstract statement of a service • A system constraint • Detailed mathematical functional specification • Must be open to interpretation • Must be defined in detail
33. What is a state diagram?
Display system state transitions caused by external events and/or conditions • How objects respond to different service requests and state transitions triggered by those requests • High-level models of a system, or an object's run-time behavior • Usually not needed for every single object in a system • Many objects in a system are relatively simple!
55. What is involved in requirements validation?
Demonstrating that requirements define the system that a customer would truly want • Validity: Do the system functions best support the needs of the customer? • Consistency: Are there any potential risks for conflicts in the requirements? • Completeness: Are all the functions that a customer would need included? • Realism: With an organization's current budget and technology, can the requirements be implemented? • Verifiability: Is there a quantifiable way to test the requirements within the implementation? • Systematic manual analysis of requirements • Check for verifiability • Comprehensibility • Traceability to source and into code • Adaptability • Prototyping • Test-case generation
72. What are some activities involved in an object-oriented design process?
Designing the system's architecture • Identifying principal system objects • Development of design models • Specification of object interfaces • Defining system's modes and context • Context: What's outside the system? How will the system talk to and interact with those objects?
37. What is a functional requirement?
Detailed statements of services the system should provide • Detail level can vary based on type of software, expected users, type of system where software is used • How the system should behave in particular situations • How the system should react to particular inputs • What the system should accomplish • Describe external interactions (inputs, outputs, behaviors) • Statement of what the system should not do • Describe actions