Download presentation
Presentation is loading. Please wait.
1
CS361 Software Engineering I http://www.flickr.com/photos/bespoke/2692422909/
2
Software is not just about computers. CS361 Software Engineering I
3
http://www.flickr.com/photos/uncultured/1816486020/ Poverty
4
Reducing poverty with software http://www.kiva.org
5
http://www.flickr.com/photos/tidewatermuse/38963406/in/set-866494/ Natural Disaster
6
Locating disaster victims with software http://www.publicpeoplelocator.com/
7
Pollution http://www.flickr.com/photos/virgomerry/86976318/
8
Reducing energy consumption with software http://www.fielddiagnostics.com/serviceassistant.cfm
9
http://www.flickr.com/photos/arasmus/3629119935/ Repression
10
Fomenting revolution with software http://www.time.com/time/world/article/0,8599,1905125,00.html
11
Disease
12
Medical imaging with software
13
Engineering is… Solving real-world problems … … without making the world worse … … and without incurring excessive costs. Software engineering is doing all that by creating software.
14
Software is not enough— you also need people and context DatabaseWeb application Database server (Mysql?) PHP runtime environment (Zend?) Web server (Apache?) Operating system (Linux?) Hurricane survivors Friends and family System Boundary hardware (Linux?)
15
Where’s the system boundary? http://votereport.pbworks.com/FrontPage Some diagrams are more helpful than others! You’ll learn some good notations in this class.
16
What is the difference between good software and great software? The quality attributes of great software: Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability
17
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.
18
Software engineering is a team effort. Requirements Design Implementation Testing System Delivery Analyst Designer Programmer Tester Trainer
19
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.
20
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
21
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.