Informatics 43 Midterm

Ace your homework & exams now with Quizwiz!

What is the definition of Software Engineering?

"Multi-person construction of multi-version software." (Memorize Word for Word)

Architectural Style: model-view-controller

- Components are models, views, and controllers - Models store information about the state of the program - View components present information to the user - Controllers allow user to control model/view and tell models (views) to update Ex. Websites/Web applications * Know how to draw diagram

Architectural Style: Object oriented

- Components are objects - Connectors are messages and method invocations Ex. Business applications * Know how to draw diagram

Architectural Style: Layered

- Components are organized in hierarchical layers - Connectors"Multi-level client server:" each layer acts as a 1. Service: service provider to layers "above" 2. Client: service consumer of layer(s) "below" Ex. Operating Systems/Networks/ * Know how to draw diagram

Architectural Style: Publish-Subscribe ("pub-sub")

- Components are publishers or subscribers - Connectors are network protocols Ex. Stock market/News * Know how to draw diagram

What is software Evolution?

- Essential part of software development - Must be accommodated as much as possible - Must be planned as much as possible

What are the "Essential Ingredients" of S.E.

People: The single most important factor in the success/failure of a product Process: Essential to achieve a quality product Tool :Needed to support people and processes

What is the purpose of a Use Case Model?

The most important role of a use case model is to communicate the system's functionality and behavior to the customer or end user

What is the WaterFall Model?

idealization of how things work

What is the Formula to calculate channels

n(n-1)/2

Why is the lack of Calendar Time such a common cause for bad software projects?

- First, our techniques of estimating are poorly developed - Second, our estimating techniques fallaciously confuse effort with progress, hiding the assumption that men and months are interchangeable. -Third, because we are uncertain of our estimates, software managers often lack the courteous stubbornness of Antoine's chef. - Fourth, schedule progress is poorly monitored. - Fifth, when schedule slippage is recognized, the natural (and traditional) response is to add manpower.

What past Breaking Through Solved Accidental Difficulties?

- High Level Languages - Time-Sharing - Unified Programming Environment

What is the Requirement's Analysis of the Requirement's Engineering?

- Interview customer - Create use cases/scenarios - Prototype solutions - Observe customer - Identify important objects/roles/functions - Perform research - Construct glossaries - Question yourself

What are the Top Software Failure Causes?

- Lack of user input/involvement - Incomplete requirements and specifications - Changing requirements and specifications - Lack of discipline in development processes - Lack of methodical usage of metrics - Lack of resources

Whats the WaterFall Diagram Bad for? (weakness)

- No iterations - Limited user input - Bad for long-term projects with any ambiguity in requirements

Why use cases?

- Other requirements engineering methods have many limitations - Use cases attempt to bridge the understandability gap - Capture the intended behavior of the system you are developing - Allow developers to come to a common understanding with your system's end users and domain experts - Realized by design and implementation elements working together to carry out each use case Help verify and validate your design and implementation features

What is a scenario?

A scenario is a sequence of steps describing an interaction between a user and a system

What are the Perspective on S.E. (i) ?

Business Perspective: - cost of developing (purchasing) software - time to market of product - profit that will be made from sale of software

WWW (World Wide Web)

- The Web is a collection of resources, each of which has a unique name known as a uniform resource locator, or "URL"

Whats are Software Process Model Bad for? (weakness)

Any nontrivial project

What is a Principal?

- "Principal" implies a degree of importance that grants a design decision "architectural status" - How one defines "principal" will depend on what the stakeholders define as the system goals

What is software architecture?

- A software system's architecture is the set of principal design decisions about the system - Software architecture is the blueprint for a software system's construction and evolution - structure - behavior - interaction - non-functional properties

What is the Requirement's Phase of the Requirement's Engineering?

- Activity of discovering/observing/gathering customer's needs - Activity of describing/documenting customer's needs *requirements address what a customer needs, not what a customer wants

What is an Actor?

- Actors are not part of the system—they represent roles a user of the system can play - An actor can represent a human, a machine, or another system (e.g., software, hardware, database)

What are the Hopes for the Silver?

- Ada and other High-level language Advances - Object-oriented programming - Artificial Intelligence - Expert Systems - "Automatic" Programming - Graphical programming - Program Verification - Environmental Tools - Workstations

What are the Promising Attacks?

- Buy versus build. - Requirements refinement and rapid prototyping. - Incremental development—grow, not build software. - Great designers.

Architectural Style: Peer-To-Peer

- Components ("peers") are equals and can act as either clients or servers - Connectors are network protocols Ex. File sharing systems, Skype * Know how to draw diagram

Architectural Style: Client-Server

- Components are clients and servers - A server has computational resources that it provides to one or more clients Ex. Email/Web browser-based programs * Know how to draw diagram

Architectural Style: Pipe-And-Filter

- Components are filters - Connectors are pipes Ex. UNIX shell * Know how to draw diagram

What are the Software Architecture element's

- Processing (Components) - Data (Components) - Interaction (Connector)

Whats the WaterFall Diagram Good for? (strengths)

- Promotes understanding of requirements first - Disciplined - Lots of documentation - Easy to track progress - Provides a framework upon which to create more dynamic, realistic processes - Good for short, simple projects will well-understood requirements

What are the fundamental Principles of Inf 43 Recurring? (These principles apply to all aspects of software engineering)

- Rigor and formality - Separation of concerns 1. modularity 2. divide and conquer 3. abstraction - Anticipation of change - Generality - Incrementality

What is the Requirement's Specifications of the Requirement's Engineering?

- Serves as the fundamental reference point between customer and software producer - Defines capabilities to be provided without saying how they should be provided - Defines environmental requirements on the software to guide the implementers - Defines constraints on the software - Defines software qualities

what is software Engineering? (Engineering)

- Skill and knowledge - Application of scientific principles - Trade-offs, cost / benefit analysis

What are Essential Characteristics of Software Engineering?

- Software engineering concerns the development of large programs - The central theme is mastering complexity - The efficiency with which software is developed is of crucial importance - Software evolves - Regular cooperation between people is an integral part of programming-in-the-large - The software has to support its users effectively - Software engineering is a field in which members of one culture create artifacts on behalf of members of another culture - Software engineering is a balancing act

What is the Informatics 43 Perspective on S.E.

- The process of constructing software. - Phases of development other than programming. - Principles and qualities of enduring value.

Why Not use Cases?

- They do not encompass all of the requirements - Not good for specifying: User interfaces, Data formats, Business rules, Non-functional requirements

Why does architecture Evolution happened?

- developer sloppiness - perception of short deadlines which prevent thinking - - through and documenting - lack of documented prescriptive architecture - need or desire for code optimizations - inadequate techniques or tool support

What is a use case (i) ?

A depiction of the following requirement information - Basic functionality - Any precondition for the functionality - Flow of events (scenario) for the functionality - Any postcondition for the functionality - Any error condition and alternative flow

What are Components?

A software component is an architectural entity that: - encapsulates a subset of the system's functionality and/or data - restricts access to that subset via an explicitly defined interface - has explicitly defined dependencies on its required execution context

What are Connectors?

A software connector is an architectural building block tasked with effecting and regulating interactions among components

What are a Software Life Cycle Models?

A software life cycle model is a high-level process

What is Software Process Model for?

A software process model can be thought of 1. "prescriptively" - enforcing rules 2. or "descriptively" - serving to describe or characterize

What is Descriptive Architecture?

A system's descriptive architecture describes how the system has been built

What is Prescriptive Architecture?

A system's prescriptive architecture captures the design decisions made prior to the system's construction

What is a Use Case Diagram?

A use case diagram is a graphical view of some or all of the actors, use cases, and their interactions identified for a system

What is the relationship between scenarios and use cases?

A use case is a set of scenarios serving a common goal

What is Brooke's Law?

Adding manpower to a late software project makes it later.

What is architectural configuration?

An architectural configuration, or topology, is a set of specific associations between the components and connectors of a software system's architecture

What is an Architectural Style?

An architectural style is a named collection of architectural design decisions that - are applicable in a given development context - constrain architectural design decisions that are specific - to a particular system within that context - result in beneficial qualities in each resulting system

What are Use Case "Extends"?

An extends relationship is used to show 1. Optional behavior 2. Behavior that is only run under certain conditions, such as triggering an alarm 3. An "interruption" in the basic flow when the condition comes true

What are the Inherent properties of the Essence?

Complexity: Software Entities are complex Conformity: Software must conform to human institutions and systems. Changeability: "All successful software gets changed." Invisibility: Cannot see software

what are the Desired Qualities of Software?

Correctness, Flexibility, Portability, Reusability, Interoperability, Robustness, Security, Reliability, Efficiency, Integrity, Usability, Maintainability

What are the Perspective on S.E. (iii) ?

Design Perspective Ultimately, from an design perspective, what matters is the external quality of the software

What are the Perspective on S.E. (ii) ?

Engineering Perspective what matters is the internal quality of the software, and making it work within the constraints of the environment

What is Incremental Models?

It is in the Architectural design phase where builders for each build: - Perform detailed design, implementation, and integration. - Test. - Deliver to client.

What is Rapid Prototyping?

It is in the Requirements Phase where users Build and discard simple prototype

What are Use Case "Includes"?

One use case includes another use case in its entirety 1. Analogous to a program calling another or a routine using a subroutine 2. The "call" is mandatory 3. An application of reuse, modularity, anticipation of change Ex. Log on/Log off

All programmers are what?

Optimists

Whats are Software Process Model Good for? (strengths)

Small programs that do not require much maintenance

what is software Engineering? (software)

Software: - Code - Documentation, user manuals - Designs, specifications - Test cases - Plans and schedules

What does a Use Case Model Consist of?

Use Case : Illustrating the system's intended functions/behaviors Actors : Illustrating the system's immediate surroundings Diagrams : Illustrating relationships between the system (use cases) and its surroundings (actors) * IMPORTANT: There will generally be one use case model per system, containing multiple use cases, actors, and diagrams

What is a use case (ii) ?

Use cases are textual descriptions of 1. Major functions the system will perform for its users 2. Goals the system achieves for its users along the way A use case describes a set of flows or scenarios 1. Each scenario is a sequence of steps describing an interaction between a "user" and a "system" 2. The use case is a collection of scenarios that together accomplish a specific user "goal" 3. Each scenario corresponds to a single path or flow through a use case


Related study sets

Class 3: Molecular Biology (see notes)

View Set

Arab-Israeli Conflict: The Six Day War 1967

View Set

Effective Teaching Practices for Students with disabilities

View Set

Meteorology - Chapter 2 - Heating Earth's Surface and Atmosphere BANK

View Set