Flashcards in Lecture 16 Deck (18):
The term software engineering refers
the study of software development on large scales.
The Waterfall Model
Implementation (Untested Software)
The idea of Use Cases is to determine
how potential users with differing roles would need to use a program to accomplish their tasks.
Each class and interface gets specified, along with arrows to show the relationships among them.
The methods (and fields, for classes) of each are also specified.
Focuses of Use Cases
“Who” can do “what”?
Each potential “who” is referred to as an actor.
“What” needs to be done, rather than “how” it should be done.
Use of Use Cases
They’re very useful for communicating with clients.
Relatively simple notation, visually clear.
Helps to flesh out requirements.
They also help to design test cases for later use.
Why is it important to get good requirements initially?
70% of all projects failed, or were incomplete due to going overbudget or overschedule.
Changing or unclear (poor) requirements.
Could be overlooked, incorrect or poorly communicated.
what data will be input into the program by one or more “actors”?
what data will our program generate that will be needed by one or more “actors”?
to model what objects represent in the real world more accurately.
Are we operating under any sort of assumptions?
Either on our own part or on those of the client?
Whenever an object within the program is modified, will any corresponding changes be expected elsewhere within the system?
How are system-level modifications related to system constraints?
Once the specification is completed, the next step is to
determine the design for the desired system.
The goal of the design process is to
develop the potential structure for a codified system which would fulfill the determined specification for the desired program.
Ideal Program Division
The manner by which the different data elements will be represented internally does not have to be tied to its representation for input or output.
How can we represent these design ideas for a given programming project effectively and efficiently?
One super-common visualization tool for the design process is known as UML: the Unified Modeling Language.