chapter 5-8 review questions
List three of the six constraints placed on a networked-based-architecture to produce REST.
Client-server design style, communications between components be stateless, caching information, uniform interface between components, layered design style, code on demand.
What are the levels of cohesion?
Coincidental- multiple unrelated tasks. Any cohesion is coincidental Logical- series of similar tasks. Temporal- series of elements related by time Procedural- related in terms of some control sequence Communicational- related by sequence and targeted on same data/sets of data. Sequential- performs one activity, delineation of a single activity isn't as clear as functional level. Functional- clear delineation of one activity, needs few changes for reuse
List four of the eight rules of interface design presented by Shneiderman and Plaisant.
Consistency Provide shortcuts Informative feedback Closure in dialogue Simple error handling and prevention Permit "re-do" Support locus of control Reduce the amount of short term memory needs
In contrast to general design, what is of the most interest in UI design?
Consistency across all interfaces, reducing/accounting for human error, putting the user in control,I really don't know the answer for this.
What are the two general characteristics of a good design that natural evolve from requirements?
Consistency and completeness.
What are the levels of coupling?
Content- access of internal data/procedural info Common- refers to same global variable Control- passes control info and influences logic of the unit Stamp- passes whole group of data to another unit Data- only necessary data is passed as opposed to a whole group
When we "pull" in a software development process, what are we pulling?
Work is being pulled. Work is pulled only if there is a demand for it. This is in contrast to push where work is done in anticipation of demand.
What is test-driven programming and which Agile process advocates it?
Writing test cases before any code is written. Test should be automated so it is easily repeatable. Extreme Programming advocates it
What does aggregation mean in OO? Give an example.
In OO, aggregation is a one way association or an object that "contains" other objects. An example: a student class might have an address class, a year class, a GPA class, etc.
Explain the role of requirements in architectural design. Explain the role of requirements in detail design.
In architectural design - transformational step where the requirements are the inputs and become the reasons for how the software is to be structured; macro view In detailed design - one to one mapping between each function requirement and a module in detailed design; micro view
What are the six main dimensions of requirements that one needs to address when collecting requirements?
Individual functionality; Business flow; Data and information needs; User interfaces; Other interfaces to external systems/platforms; Various constraints - Performance - Security - Reliability - Ect.
What is the Kanban method modelled after?
Kanban means billboard in Japanese. It's derived from the Toyota Production System for Lean Manufacturing
Describe three different views used in architectural design
Logical- OO system decomposition, classes/relationships. Process- runtime components (processes) and the communications between them Subsystem- modules and subsystems along with export/import relationships Physical Architecture- mapping of software to hardware
Describe the difference between low-fidelity and high-fidelity prototyping in the design of the interface. Choose one and give the reasons why you would show the client this prototype.
Low-fidelity is usually manually drawn prototypes on paper, high fidelity is a protoype that works as the finished product is supposed to, usually on the computer. I would give the low fidelity to a client first in order to gauge if we're headed towards the right direction first in terms of UI before putting in work to design a working, usable high-fidelity prototype.
In the MVC style, what does the model really model?
Model view controller , the model is the data logical structure of data in a software application
List four items that are included in the description of high level business profile.
Opportunity and needs Justification Scope Major constraints Success factor User characteristics
List Five XP Practices
Planning Short Releases Metaphor - (instead of a formal architecture, use a metaphor as a simple common vision of how the whole system works.) Simple Design Test-Driven Development Design Improvement (Refactoring) Pair Programming Collective Ownership Continuous Integration Sustainable Pace On-Site Customer Coding Standards
What are the three main items that must be planned prior to conducting requirements engineering?
Process (for requirements engineering) to be used Resources Needed Schedule for completing the requirements activities
5 Fundamental Principles of XP
Rapid feedback Simplicity Incremental change Embracing change Quality work
Explain some of the characteristics of Agile methodologies.
Short releases and iterations Incremental design User involvement Minimal documentation Informal communication Change
What factors does the Crystal Family consider when choosing a methodology?
Size (max number of developers), criticalness (gauged by loss caused by malfunction), priority (pressure on project)
Explain the main aspects that open source development shares with Agile methods.
Small releases, informal communication, customer availability,
List two differences between the state transition diagram and the sequence diagram.
State diagram shows the states of the objects and how does states change. Sequence diagram only shows the message interactions among the objects
What is the viewpoint oriented requirements definition (VORD) method used for?
The method is based on the understanding that requirements are not viewed the same by the different stakeholders. This methodology of collecting requirements ensures that all different perspectives of requirements are provided.
Requirements Statement Descriptions of Interfaces FOUR DIMENSIONS
User System Network Hardware
What are the six C-K metrics in OO?
Weighted number of methods per class Depth of inheritance tree of the class Number of children of a class Coupling between objects Number of responses to a class message Lack of cohesion among methods in a class
What are the four types of requirements traceability?
Backward from traceability: links the requirement to the document source or the person who created it Forward from traceability: links the requirements to design and implementation Backward to traceability: links design and implementation back to the requirements Forward to traceability: links documents preceding the requirements to the requirements
Describe a reference architecture
A reference architecture is a set of design principals used as reference that can be applied to multiple systems within a domain. This can include aspects of structure, function, interactions, nonfunctional properties, and some implementation.
Compare and Contrast Agile and traditional methods.
Agile - assumes the requirements will change, iterative, continuous integration, frequent user involvement, minimal documentation Traditional - formal, heavy documentation, assumes requirements won't change, high process complexity
List and describe three items that will need to be considered in prioritizing requirements.
Current customer demands Competition and current market conditions Future customer needs Immediate sales advantage Critical problems in the existing product
What is a depth of inheritance tree in C-K metrics and why may a large DIT be bad for design?
DIT is the maximum length of inheritance form a given class to its "root" class. A large DIT would mean a long length between the root and the class. The increase in this distance increases the chances of errors
Four Phases of Database Design
Data Modeling - usually entails creating an entity relationship model of the data. Logical Database Design - taking as input a detailed ER model, a normalized relational schema is produced. The relationship schema is a set of tables together with foreign key relationships Physical Database Design - main decisions include what data type to use for each attribute and what indexes to create. Sometimes the logical schema is transformed for efficiency. Sometimes decisions may be made about more low-level issues, such as which relations are stored on which hard drives Deployment and Maintenance - final details are ironed out, including where the relations are stored. Not only do the details of the DBMS software used need to be known, but also the specific hardware the system is going to be deployed on needs to be specified.
What is the difference between data modeling and logical database design?
Data modeling- constructing and showing the entity relationship among the objects Logical database - entity relationship is converted to tables and relationships
List and describe at a high level the steps involved in software requirements engineering process
Elicitation- obtaining requirements from client. Needs good communication and interpreting skills as client does not always know what they want and/or does not know how to clearly state it. Analysis - done after elicitation, checking for accuracy, conflict, categories and priority. Documentation and definition - self explanatory, detailed documentation about the requirements. Prototyping - not always needed but sometimes for certain requirements, especially user-interface aspect. Describes user interaction Review and Validation- Reviewed by users and may go back to prototyping and documentation/definition. Specification- SRS and negotiations of finalizing the requirements agreement document. Confirms with client that the correct system has been built. Agreement and acceptance- both client and team get SRS and agree that the current system is the formal baseline.
Requirements
Forms a set of statements that describe the user's needs and desires Must be clearly and fully understood by the software engineers who develop the software system.
Name the 4 core values of XP.
Frequent communication with team and customer, code design simplicity, feedback on many levels, courage to implement hard but necessary decisions
When we employ the technique of generalization in design, what are we doing and which part of OO design is closely related to this concept?
Generalization is an abstraction where only the main, essential ideas are kept. In OO, it would be moving specific objects to a general class definition.
What are glue tokens and superglue tokens? Which contributes more to cohesion and why?
Glue tokens are data tokens that lie in more than one data-slice. Superglue tokens are data tokens that lie in every data-slice. The superglue token contributes more to cohesion because they lie in