Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lesson 1
Stefan Andrei
1/4/2012
CPSC-4360, Lesson 1
Recommended books:
1/4/2012
CPSC-4360, Lesson 1
1/4/2012
CPSC-4360, Lesson 1
SE definitions
Quality of Good Software
Activities and associated stages
1/4/2012
Structured Analysis
Object-Oriented Method
CPSC-4360, Lesson 1
1/4/2012
CPSC-4360, Lesson 1
What is Software?
More than computer programs.
The collection of programs, documentation
and configuration data that ensures correct
execution.
Three major types:
1/4/2012
CPSC-4360, Lesson 1
Intangible:
Easy to Reproduce:
Malleable:
1/4/2012
1/4/2012
Late completion:
Overrunning Cost:
1/4/2012
Unreliable
Difficult to maintain
Etc
CPSC-4360, Lesson 1
1/4/2012
CPSC-4360, Lesson 1
10
1/4/2012
CPSC-4360, Lesson 1
11
http://wired.com/news/technology/bugs/0,69355-1.html?tw=wn_story_page_next1
http://www.comlab.ox.ac.uk/archive/safety.html
http://www.csl.sri.com/risks.html
1/4/2012
CPSC-4360, Lesson 1
12
What is Engineering?
Engineering means to systematically identify,
understand, and integrate the constraints on a
design to produce a successful result.
Constraints may include:
available resources,
physical or technical limitations,
flexibility for future modifications and additions,
cost, manufacturability, and serviceability.
1/4/2012
CPSC-4360, Lesson 1
13
Usability
Efficiency
Maintainability
Dependability
Reusability
1/4/2012
CPSC-4360, Lesson 1
14
User:
- Solves problems at
acceptable cost (time
and resource).
- Easy to learn
- Efficient to use
- Get work done
Developer Manager:
Developer:
1/4/2012
- Costing less to
develop and maintain
CPSC-4360, Lesson 1
15
CPSC-4360, Lesson 1
16
Software
M. Priestley
A discipline that guides the process of solving
customers problems by the systematic development
and evolution of large, high-quality software systems
within cost, time and other constraints. our definition
1/4/2012
CPSC-4360, Lesson 1
17
1/4/2012
18
Design
Implementation
CPSC-4360, Lesson 1
Occurrence of
Change
19
Software Process
1/4/2012
CPSC-4360, Lesson 1
20
A Software Process is
the set of activities and associated results
that produce a software product.
It has four fundamental process activities:
Software Specification
Software Development
Software Validation
Software Evolution
1/4/2012
CPSC-4360, Lesson 1
21
Typical Stages:
Feasibility Study:
Domain Analysis:
Requirements Validation:
1/4/2012
Requirements Specification:
22
Programmers
1/4/2012
CPSC-4360, Lesson 1
23
Low
Level
1/4/2012
CPSC-4360, Lesson 1
24
1/4/2012
CPSC-4360, Lesson 1
25
Typical Stages:
1/4/2012
CPSC-4360, Lesson 1
26
Typical Work:
1/4/2012
CPSC-4360, Lesson 1
27
Artifact
1/4/2012
CPSC-4360, Lesson 1
28
Two artifacts:
Requirements specification;
Source code.
CPSC-4360, Lesson 1
29
Software Specification:
Software Development:
Design:
Programming:
Software Validation:
Software Evolution:
1/4/2012
Not applicable.
CPSC-4360, Lesson 1
30
1/4/2012
CPSC-4360, Lesson 1
31
CPSC-4360, Lesson 1
32
Software Specification:
Software Development:
Design:
Programming:
Software Validation:
Software Evolution:
1/4/2012
Not applicable.
CPSC-4360, Lesson 1
33
1/4/2012
CPSC-4360, Lesson 1
34
1/4/2012
CPSC-4360, Lesson 1
35
Structured Analysis
Stack with
New Value
New
Value
1/4/2012
CPSC-4360, Lesson 1
36
1/4/2012
CPSC-4360, Lesson 1
37
Object-Oriented Methods
1/4/2012
CPSC-4360, Lesson 1
38
Object-Oriented Methods
Most operations in real-world only use a small
fraction of the total data of the system, and most
pieces of data will be accessed by a small
number of operations.
So, there was a need to split the data repository
and integrate pieces of data together with the
operations that directly manipulate those data.
This is the main principle of object-oriented
approaches.
Example: scanners and printers are (in) separate
(rooms), as they provide different operations.
1/4/2012
CPSC-4360, Lesson 1
39
Compared with structured approaches, in the objectoriented approaches the operations are localized
together with the data that they affect, instead of
being part of a large and global repository.
Programs using object-oriented structures are easy to
understand and maintain (incremental software
development).
In the structured approach, each operation has the
responsibility of choosing the necessary data from a
central repository (i.e., global place where the data is
stored).
1/4/2012
CPSC-4360, Lesson 1
40
The person who wants to cut some of the above fruits has the
responsibility to choose that fruit and its corresponding knife.
Object-oriented approach:
1/4/2012
The table is splitted in three separate sections, the first one with
apples and their knife, the second one with peaches and their knife,
and the third one with pineapples and their knife.
The person who wants to cut and eat a fruit will choose the desired
section which has that fruit and its knife.
CPSC-4360, Lesson 1
41
Software
Development
Software
Validation
-Domain Analysis
-Requirements
Gathering and Analysis
-Requirements
Specification
-Requirements Validation
-Feasibility Study
-Architectural Design
-Abstract Specification
-Interface Design
-Component Design
-Data Structure Design
-Algorithm Design
-Component
Testing
-System Testing
-Acceptance Testing
Software
Evolution
-Maintenance
-Redevelopment
1/4/2012
CPSC-4360, Lesson 1
42
Scheduling
Risk Assessment
Quality Assessment
Documentation
Human Resource Management
Etc.
1/4/2012
43
Informal representation:
1/4/2012
CPSC-4360, Lesson 1
44
1/4/2012
CPSC-4360, Lesson 1
45
CPSC-4360, Lesson 1
46
Summary
SE definitions;
Quality of Good Software.
Activities and associated stages.
1/4/2012
Structured Analysis;
Object-Oriented Method.
CPSC-4360, Lesson 1
47
Reading suggestions
Chapter 1
Appendix A
Exercises 1.1-1.4
1/4/2012
Chapter 1
CPSC-4360, Lesson 1
48
Coming up next
UML Overview:
1/4/2012
CPSC-4360, Lesson 1
49
1/4/2012
CPSC-4360, Lesson 1
50