Administrative Topics assignment ) TEACH/mailing list

advertisement
Administrative Topics
-TEACH/mailing list
- Brainstorm
- Pick a project manager for each HW
assignment (responsible for communication, scheduling and
execution)
- Vision statement (you are writing this for another group
to implement)
- Class outline and project selection
- Notice score sheet on syllabus
= slide has a good chance of being on the midterm or final exams.
http://www.flickr.com/photos/bespoke/2692422909/
Unhappy with today?
Design tomorrow.
CS361
Software Engineering I
http://www.flickr.com/photos/bespoke/2692422909/
Poverty
http://www.flickr.com/photos/uncultured/1816486020/
Reducing poverty
http://www.kiva.org
with software
Addiction
http://www.flickr.com/photos/fixe/2846866094/
Supporting counseling
http://cf.polarishealth.com/demo/start_demo.html
with software
Natural Disaster
http://www.flickr.com/photos/dvids/4884699931/
Raising money for relief
http://www.flickr.com/photos/gauravonomics/4275794655/sizes/m/
with software
Pollution
http://www.flickr.com/photos/virgomerry/86976318/
Reducing energy consumption
http://www.fielddiagnostics.com/serviceassistant.cfm
with software
Repression
http://www.flickr.com/photos/arasmus/3629119935/
Fomenting revolution
http://www.time.com/time/world/article/0,8599,1905125,00.html
with software
Webster says Engineering is…
• the branch of science and technology
concerned with the design, building, and use
of engines, machines, and structures.
• the action of working artfully to bring
something about
• a skillful contriver or originator of something
Software is not enough—
you also need people and context
Kiva borrowers
Web application
Database
Kiva donators
PHP runtime
environment (Zend?)
Web server
(Apache?)
System Boundary
Database
server (Mysql?)
Operating system
(Linux?)
hardware
(Linux?)
Where’s the system boundary?
Some diagrams are more helpful than others!
You’ll learn some good notations in this class.
http://www.flickr.com/photos/cambodia4kidsorg/3450172436/sizes/l/
What is the difference between
good software and great software?
The quality attributes of great software:
• Reliability
• Testability
• Efficiency
• Flexibility
• Integrity
• Portability
• Usability
• Reusability
• Maintainability
• Interoperability
Great software contains the
right features for the right data.
• Use cases = the activities a system supports
e.g.: tweet a vote report, view delays on map
• Entities = the kinds of objects that are
involved in use cases
e.g.: tweets, user accounts, polling locations, maps
• Attributes = the properties of the entities
e.g.: tweets have: timestamp, text, sender
You can’t build a great system
until you understand what it should do.
Software engineering is a team effort.
Requirements
Design
Implementation
Testing
System Delivery
Analyst
Designer
Programmer
Tester
Trainer
How do you create great software?
• Professionalism
– Character
– Teamwork
– Planning
– Risk management
• Technical skills
– Design
– Implementation
– Quality control
All of these are necessary.
Not a single one is optional.
All will be practiced in this course.
Course Objectives
At the completion of the course, students will be able to...
•
Select the most appropriate software process model to use in a particular situation
•
Synthesize requirements for a realistic software system and write a requirements
specification document
•
Produce professional-quality software-related documents
•
Model system requirements using one or more semi-formal notations such as UML,
dataflow diagrams, entity-relationship diagrams, or state diagrams
• Design software systems at an architectural level and at lower levels, using one or more
techniques, such as object-oriented design or agile methods, and express these designs in
design specification documents
• Validate designs and adjust the specification or design as necessary
• Describe several methods of estimating the cost and developing a schedule for a
programming project
•
Participate effectively in a team environment
Course Objectives
To train you in...
•
•
•
•
•
•
•
•
process: a sequence of activities intended to design and produce software
requirements: a description of what software should do and should be
documents: representations of requirements, designs, and systems
notations: the rules for what those documents should look like
design: a description of something that could be created
validate: making sure that something is what it should be
cost and schedule: the amount of money and time expended on creating a system
team: people striving toward a common goal
Download