CS361 - Chapter 1: Intro to Software Engineering (Week 1)
CS361 - Chapter 1: Intro to Software Engineering (Week 1) COMPSCI 36
Popular in Intro to Software Engineering
Popular in Department
This 2 page Class Notes was uploaded by Carter Notetaker on Monday February 29, 2016. The Class Notes belongs to COMPSCI 36 at University of Wisconsin - Milwaukee taught by Jon Hopkins in Spring 2016. Since its upload, it has received 17 views.
Reviews for CS361 - Chapter 1: Intro to Software Engineering (Week 1)
Report this Material
What is Karma?
Karma is the currency of StudySoup.
Date Created: 02/29/16
Chapter 1 - Intro to Software Engineering Friday, January 29, 2016 10:57 I. What is Software Engineering? a. A modeling activity i. An abstract representation of a system that enables us to answer questions about the system b. A problemsolvingactivity i. Five steps 1) Formulate the problem 2) Analyze the problem 3) Search for solutions 4) Decide on appropriate solution 5) Specify the solution c. A knowledge acquisitionactivity i. A non-linear process, new information may invalidate or change all of the knowledge we have acquired thus far ii. Risk-based developmentattemps to anticipate surprises late in a project by identifying the high-risk components iii. Issue-based developmentattempts to remove the linearity altogether, analysis, system design, object design, implementation, and testing occur in parallel 1) Much harder to manage d. A rational activity i. It is necessary to capture and understand the context in which each design decision was made II. Software Engineering Concepts and Terms a. Project - development of a software system i. Composed of Activities b. Activities i. Set of tasks that is performed toward a specific purpose ii. Can be composed of other activities iii. Sometimes called phases c. Tasks i. Atomic unit of work that can be managed ii. Consume resources iii. Produces a Work Product iv. Can also depend upon other work products d. Work Product- an artefact that is produced during development i. System 1) Collection of interconnected parts ii. Model 1) Any abstraction (representation) of the system iii. Document iv. Internal work product:Internal consumption v. Deliverable:Work product delivered to a client e. Resources - Assets that are used to accomplish work i. Participant 1) All persons involved in a project a) Ex: Client, Users, Managers, Human Factors Specialist (testers), Developer, Technical Writer, etc. ii. Time iii. Equipment f. Functional Requirement- Specification of a function that the system must support i. Ex: In a ticket machine, a user must be able to purchase tickets and access ticket information g. Nonfunctional Requirement- Constraint on the operation of the system that is not related directly to a function of the system i. Ex: The user must be provided feedback in less than one second h. Notation- Graphical or textual set of rules for representing a model i. UML is a notation for representing OOP concepts i. Method- Repeatable technique that specifies the steps involved in solving a specific problem i. Ex: a recipe j. Methodology- A collection of methods for solving a class of problems and specifies how and when each method should be used III. Software Engineering Development Activities a. Requirements Elicitation - Client and developers define the purpose of the system i. Results in a description of a system in terms ofActors and Use Cases 1) Actors represent the external entities that interact with the system 2) Use Cases are general sequences of events that account for all possible actions between an actor and the system b. Analysis - Developers aim to produce a model of the system that is correct, complete, consistent, and unambiguous i. Uses cases are transferred into an object model that describes the system ii. Designed for the Client to understand (IE, not super technical documentation) c. System Design - Developers design goals of the project and decompose the system into smaller subsystems i. Not designed for the client, very technical d. Object Design - Developers define solution domain objects to bridge the gap between the analysis model and the hardware/software platform defined duringSystem Design i. Describing object and subsystem interfaces ii. Selecting off-the-shelf components iii. Restructuring the object model to attain design goals such as extensibility or understandability CS 361 Soft Eng Page 1 i. Optimizing for performance ii. a. Implementation - Developers translate the solution domain model into source code b. Testing - Developers find differences between the system and its model by executing the system (or parts of it) with sample data sets 1. Managing Software Development a. Communication b. Rationale Management - Managing decisions and the justification of those decisions c. Software Configuration Management - Process that monitors and controls changes in work products i. Version control, different versions have different features and developers can revert to previous builds d. Project Management - Oversight activities that ensure on-time delivery e. Software Life Cycle - General model of the software development process CS 361 Soft Eng Page 2