computer sciencesoftware engineering slide 1 groups paul simmerlink stephen herbert daniel coming...
Post on 20-Dec-2015
216 views
TRANSCRIPT
Computer Science Software Engineering Slide 1
GroupsPaul SimmerlinkStephen HerbertDaniel ComingOgechi UgwuleboJames King
Jigna J. Bhatt Casey J. PowellBrett HarrisonJonathan WardMichael Vidal
Don MillerJames FryeDavid BrewerOlja MihicCasey Mees
Maggie Lu Reid WebberTaisuke Nagayama Jeff PayneMatasaka Sako
Howard C. WuShana RheaultRichardD.VanHornRodel MangobaSteve Luong
Jason DoddBeifang YiDorothy P. CheungWilliam NelsonWill WoolseyAndrew Rodgers
James Cohen, Judy Rowley, Stan Sexton, Rajashekhar Yakkali, Kazuhito Mori
Computer Science Software Engineering Slide 2
Project Management tools See the projects web page
Concurrent Versions System (CVS)
Coding standards• Java coding standard document
Computer Science Software Engineering Slide 3
What have we learned so far? Murphy's Technology Laws1. Logic is a systematic method of coming to the wrong
conclusion with confidence. 2. Whenever a system becomes completely defined, some
damn fool discovers something which either abolishes the system or expands it beyond recognition.
3. Nothing ever gets built on schedule or within budget. 4. All's well that ends. 5. Any given program, when running, is obsolete. 6. To spot the expert, pick the one who predicts the job will
take the longest and cost the most.
Computer Science Software Engineering Slide 4
What have we learned so far? The first step in software development is
understanding the system to be developed This is requirements analysis Requirements analysis starts with a description of
the system The description is refined into a requirements
document
Computer Science Software Engineering Slide 5
Requirements document Interaction between engineering, marketing and
clients (domain experts) Iterative Increase understanding of system
• Informal scenarios help understanding and appreciation of system complexity
• Raise questions that need to be answered by domain experts• Propose GUI/UI (more on GUI design later)
Requirements document (formatted formal document)
Computer Science Software Engineering Slide 6
Do you understand system? Validate your understanding Use Case Centered Design (UCCD)
• Scenarios • Comprehensive, explore all interaction with system
• UML class diagrams• Initial design
• List of primary classes (nouns, properties of primary classes)
• UML use-case diagrams• Compact representation of use of system
Computer Science Software Engineering Slide 7
Next? Troutman's Laws of Computer Programming 1. Any running program is obsolete. 2. Any planned program costs more and takes longer. 3. Any useful program will have to be changed. 4. Any useless program will have to be documented. 5. The size of a program expands to fill all available memory. 6. The complexity of a program grows until it exceeds the capability of its
maintainers. 7. Any system that relies on computer reliability is unreliable. 8. Any system that relies on human reliability is unreliable. 9. Make it possible for programmers to write programs in English, and
you will find that programmers cannot write in English. 10. Profanity is the one language all programmers know best.
Computer Science Software Engineering Slide 8
Next Persistence? Inter-process communication? HCI Architecture
• Grouping primary classes• Interfaces
Design Implementation Validation
Computer Science Software Engineering Slide 10
Object Persistence Object persistence seeks to retain object
information on some persistent storage medium as a file or through a DBMS
Object serialization works for situations where all object information can reside in memory at once
Because most commercial DBMSs are relational in contrast to object-oriented, some translation between the object and relational representations must be made
Computer Science Software Engineering Slide 11
Evaluating Object Persistence Security
• Hacker proof
• Allows reconstruction in face of malicious use
Information growth• Solution still works with increased data volume
Concurrency• Concurrency solution allows for increased users
Computer Science Software Engineering Slide 12
LMS: Object Persistence
LMS may contain hundreds of thousands of book entries as well as thousands of other library resources
such a volume of data does not permit object streaming
A DBMS is called for to provide• Concurrent access by multiple users• Security enforcement of different access levels for various user
categories• Allow for increased data capacity
Computer Science Software Engineering Slide 14
LMS Case Study: Relational Representation of Data
Relational TablesBook
Resource List
Patron Address
Patron
Computer Science Software Engineering Slide 15
Process Architecture
Software systems may consistent of processes interacting over a network
Process architecture lays out the machines (nodes) that will host the processes making up the system
Process architecture determines the behavior of the distributed processes
Deployment diagrams are used to model distributed processes
Computer Science Software Engineering Slide 16
Sample Deployment Diagram
GameClient
GameClient
GameClient
GameServerInternet
Computer Science Software Engineering Slide 17
Modeling Interprocess Communication
Deployment diagrams show the distribution of process over multiple nodes but do not indicate how these processes communicate
State machines may be used to model communication between processes
The idea behind using state machines for modeling interprocess communication is that the system enters a new state when messages are exchanged between processes
Computer Science Software Engineering Slide 18
UML Notation for State Machines
State Name Intermediate State
Initial State
Final State
Trigger State transition with event trigger
State Name
State with substates
Computer Science Software Engineering Slide 19
Sample State Machine Showing Interprocess Communication
Player Joining Game
Get player name
Select token
{ Client States}
{ Server State}
Communicate remaining tokens
player nameavailable tokens selected
token
Computer Science Software Engineering Slide 20
Modeling Multiple Threads of Control
Classes that consist of a separate thread of control are modeled as active classes
Active classes are rendered with thick rectangles as shown below
Active classRegular class
Computer Science Software Engineering Slide 21
Galaxy Sleuth galaxySleuthServer gameBoard playerListener
Computer Science Software Engineering Slide 22
Design Summary
Create solution for object persistence Develop user interface designs Determine process architecture
Computer Science Software Engineering Slide 23
Possible Obstacles to Effective Meetings
Poor agendas Dysfunctional communication during the meeting
(silence or domination) Not adhering to the agenda Discussion may not sufficiently focus on meeting
objectives specified by the agenda Team members are not listening to each other
during discussion