Informatics 43

Ace your homework & exams now with Quizwiz!

Abstraction

Formed by removing irrelevant information and retaining relevant information. Every design notation supports a degree of abstraction.

No Silver Bullet (Brooks) - Silver Bullet: Incremental development

Grow, not build software

Client-Server Architecture

Has a server with a bunch of clients. Advantage: Centralized controll

No Silver Bullet (Brooks) - Silver Bullet: Requirements refinement/ rapid prototyping

Having really specific requirements makes it easier to build software that conforms to what the client wants

Software Design

How and the what of the requirements.

Relationship between classes: Composition

If parent is deleted, child is deleted. Ex: Cannot have a room without a building.

Perspective of Software Engineering: Engineer

Internal quality

Pipe and Filter Architecture

Pipes are the interactions between the filters. Goes from one end the other. Advantages: Modularity Reuse Anticipation of change

Publish and Subscribe Architecture

Publishers send out the data and the subscribers only receive the data that they are subscribed to. Advantages: Efficiency and Scalability Examples: Stock market, news

No Silver Bullet (Brooks) - Silver Bullet: Great designers

Really ****ing smart people.

Use case

Textual description defining interactions between an actor and the system to achieve the primary actor's goal. Serve as a communication/understanding tool among diverse stakeholders.

Recurring Fundamental Principles: Generality

The ability to reuse code, so writing code in a way which allows one to reuse it elsewhere without writing something similar again.

Descriptive Architecture

The actual architecture of the system once it is built.

Prescriptive Architecture

The intended architecture before the system is built.

Layered Architecture

When there are different layers, and each one only interacts with the one below or above it. Advantages: Modularity Abstraction: you abstract all the parts that are not above or below the one you are working on. Anticipation of Change Reuse: Different parts of different layers can be easily reused. Examples: Operating Systems, networks

Brooks' Law formula

n(n-1)/2

Model-View-Controller Architecture

A model is affected by a controller. The view is the interface. Advantages: Modularity: everything pertaining to one thing is shown in one area. Anticipation of change: Easily changeable, as you can update just the components. Same reason as object oriented.

Why spend a lot of time in requirements?

As the development process goes on, it costs more and more in order to change a requirement.

Parts of a use case

Basic, alternative, exception flows.

Recurring Fundamental Principles: Anticipation of Change

Being able to anticipate future change in the software

Hubble Psychology

Being overly optimistic on large projects.

Recurring Fundamental Principles: Rigor and Formality

Being rigorous about formalities. Make sure that one adheres to the requirements and software engineering process.

Recurring Fundamental Principles: Incrementality

Building your software incrementally. Growing it.

Architectural style

A collection of architectural design decisions that are applicable in a given development context.

Parts of a use case diagram.

Actor, System boundary, use case

Brooks' Law

Adding more people to a late project makes causes it to be even more late.

Relationship between classes: Association

All objects have their own life cycle and there is no owner. Ex. Multiple teachers can associate with one student and multiple students can associate with one teacher.

Evolution

All successful software evolves. Essential part of software development. Must be accommodated/ planned as possible.

Approaches to software design: Object Oriented Design

An "object" contains both data and methods. "Class" is a blueprint for making objects. UML

No Silver Bullet (Brooks) - Silver Bullet: Buy vs build

Buying parts of software. Ex. buying google maps api instead of making a whole new map function.

Components of Architecture

Components and connectors put into configurations.

Perspective of Software Engineering: Business

Cost, time profit.

Approaches to software design: Relational Database Design

Designing a table that shows the data being stored and how they're related.

Approaches to software design: User Interfaced Design

Designing the user interface in a concept sketch.

Peer to Peer Architecture

Each component is connected with a peer. Advantages: Robustness: if one peer goes down, just connect to another one bc they're all the same Efficiency: they are very efficient because you directly connect to another peer. Do not have to go through a server. Ex: Skype, file sharing systems

Perspective of Software Engineering: Design

External quality

Failure readings: Shopa

Failed because they were unsure of what the software they were building actually was.

Top Software Failure Causes

Lack of user input/involvement Incomplete specifications and requirements Changing requirements and specifications Lack of discipline in the development process Lack of methodical usage of metrics (eg testing how long a function takes on a super fast computer, but not the same as a typical consumer. Also incorrect in measuring cost and scheduling) Lack of resources

Software Design Goals/Activities

Making system-wide decisions: architecture, languages, libraries, platforms Making lower leveled-decisions in an iterative manner Studying the problem, identifying solutions, creating abstractions

Recurring Fundamental Principles: Separation of Concerns

Modularity: Dividing functions into smaller modules, as well as dividing problems into smaller versions of themselves. Divide and Conquer: Dividing the issue into different parts which each person can conquer individually. Abstraction: Abstracting things that do not pertain to what you are concerned with.

What is software engineering?

Multi-person construction of multi-version software.

Relationship between classes: Aggregation

Objects have their own life cycle but there is ownership and child cannot belong to another parent. Ex. Teacher has a department, but when the department is deleted, the teacher still exists.

Architectural Erosion

Occurs when the prescribed architecture differs from the descriptive architecture.

Mythical Man Month: Causes of late projects

Optimistic estimations Confuse effort with progress. Man Months Poor system testing and mischeduling Poor schedule monitoring Adding manpower

Essential ingredients to software engineering

People, Process, Tools

Approaches to software design: Functional Decomposition

Separating the whole functionality of the system into smaller building blocks. Ex: Timekeeper 9000 1 Authentication 1.1 Login 1.2 Logout

Software Architecture

Set of principle design decisions about the system. A blueprint for its construction and evolution.

Object Oriented Architecture

Setting having each item in the architecture represented by a physical object. Advantages: Abstraction: Each object is a physical object. Anticipation of change: Easy to upgrade, just change each module and as long as the interface between others is the same, it will work. Understandably: Very understandable.

Non-functional requirements

Software ilities. Linear scale. Traits that the software has

No Silver Bullet (Brooks) - Difficulty: Complexity

Software is complex and it is really difficult to keep track of every component.

No Silver Bullet (Brooks) - Difficulty: Invisibility

Software is invisible. There is no way to find issues until they are found through testing.

No Silver Bullet (Brooks) - Difficulty: Changeability

Software must be changeable because requirements and intentions change all the time.

No Silver Bullet (Brooks) - Difficulty: Conformity

Software must conform to the platform and environment it is in. This is always different. Ex. Engineers conform to laws of physics but software engineers conform to whatever laws given in the language.

Failure readings: CA Payroll and LADWP

The systems failed because they were underfunded and they also took on an issue that was way too complex for them. Progress was hard to measure and it was difficult to conform to the old system.

Other Design Diagrams

User interface mockups, storyboard, sketches.

Requirements

What the software should do without saying how it should do it.


Related study sets

English Midterms: A Marriage Proposal

View Set

cellular molecular biology exam 3

View Set

SUBJECT PRONOUNS and OBJECT PRONOUNS

View Set

Mental Health Nursing Exam 1 questions

View Set

Chapter 6: Values, Ethics, and Advocacy

View Set

Lehne - Ch. 52 - Anticoagulant, Antiplatelet, and Thrombolytic Drugs

View Set

Chapter 69+70: ALS, MS, & MG (Module 21/Unit 4)

View Set