The Software Process
• Step and procedures executed by a software
organization during the development of
software
• Not a linear sequence of steps
• Many activities occur simultaneously or in
random order
• Organizations often continually improve
and change their software processes
Software Process Activities
• Requirements Analysis and Definition
• System Design
• Prototyping
• Implementation and Coding
• Unit Testing
• Integration Testing
• System Testing (Alpha)
• Acceptance Testing (Beta)
• Help and Manual Generation
• Release
• Maintenance
Functional Specification
• Formal document generated after a requirements
analysis.
• Contains a detailed list of the functionality required for
the system being built.
• Is a contract between the client and developers which
states what functionality the end system will have.
• Only technical with respect to domain knowledge
Sample Requirements
• Delivery Schedule
• Performance
• Deployment
•
Configurability/Adapt-ability
• Portability
• Reliability
• Usability (User
Interface Features)
– User Interface
Standards
• System Functions
• Maintainability
– Coding Standards
Functional Specification
• There should be no coupling between the
functional specification and the design
specification.
– The functional spec should be concerned with
describing the functionality.
– Functional specification should decouple details
of how the system is to be implemented.
– In the functional specification phase the
customer should not think in “design” terms.
Design Specification
• Formal document which describes how the
features described in the functional specification
document are to be implemented.
• Design Phases
– High level architectural design
– Detailed Design (Decomposition)
• object or module based
– Interleaved Design testing
Computer Aided Software
Engineering (CASE) Tools
• (File) Version Management Tools
– Aka Source Code Control
– Supports multiple developers working on same code
base
– Supports ability to track a module through it’s
development
– Supports software releases by tagging file versions
– Most tools store differences between file versions.
– Web interfaces
Version Management Tools
• Rational ClearCase
• PVCS Version Manager
• Microsoft Visual SourceSafe
• CVS - Concurrent Versions System
• See this link:
http://www.iac.honeywell.com/Pub/Tech/C
M/CMTools.html
Software Engineering Tools
• Feature Tracking Tools
– Track System Requirements
– Track System Change Requests (Critical
Incidents, aka “bugs”)
– Can associate issue with source files, classes
(integration with version management tools.)
– Responsibility for software requirements can be
assigned to specific team members
Feature Tracking Tools
• Any database
• Intersolv: PVCS Tracker
• Rational: ClearQuest
• Elsinore: Visual Intercept
– Integrates with Microsoft SourceSafe
Specification/Design Tools
• Allow for system modeling and design
• Support diagramming in a standard notation
such as UML
• Support code generation from models
Specification/Design Tools
supporting UML
!" #%$'&()+*+,-.(+/0 123,45 1& #76* 88)9::<;';';=(?>@+(5 -<1>2<;=-3A+BC:3D FE GHI JK 3LM N!" #7OA>+1+/1& #76* 88)9::<;';';=-.(2<1;G,2<1=-<ABC:<D FEK JPJ!"#%Q'R.S1 -38T1(BPU$G&A+V5 >+WNA&X?23UT1+&&(+,5 #76* 88)9::<;';';=-.( Y15+5 1 2<AZ8=-<ABC:<D [H \PN N!"
#7] ( 2<Y]+^M] ( 2<YQG_`<] aT #76* 88)9::<;';';=1 238,=-<ABC:<D F!EcbedfE LJgh+<i!"
#7j1 (>+2<8(+&8Ua(8(/Y23,2 #76* 88)9::<;';';=,-<A5 -<ABI)=-<ABG:3D
Specification/Design Tools
supporting UML
F!+Eg!" #7k3,@1O'A >1+/+l+mnP^ :3oN] >,8,A5 #76* 88)9::<;';';=,5?81+//,-<A&)=-<ABG:3D F!dccHpcbeq?rs!"#tm //1 4&,2el1&,12<Um )+)+O'(2.81&c0123,45 1& #76* 88)9::<;';';=,5?81&2<A+/@=-<ABC:<D [q ?uv w I!"
#7]+&;x,5
#76* 88)9::<;';';=/A4,-<;GA+&X?2 =-<ABG:3D [yq?!dCz'{|Ki"
#7n k.mT}~ Osn3(&( >,4Bn /V2 #76* 88)9::<;';';=)/(8,5VB=-<ABG:3D [ygwJM K 3LM N!"
#l+Y+2<81Bm&-?*,81 -38Ulm: _n^N(5 > #l+m:3Q'R.S1-<8 m &-?*+,81-.8 #76* 88)9::<;';';=) A) X ,5=-3A+BC:3D
Specification/Design Tools
supporting UML
p . Egc" #7^(8,A5 (+/^A2<1ZA& ,2?V(/_(23, -#76* 88)9::<;';';=&( 8,A5 (+/=-<ABC:<D pcJ ME gc"#7jQcW
#76* 88)9::<;';';=&,@+1&8A5=-<ABC:<D Hq+HE icPN N!"
#l]+k3] aTM]+5 81&)+&,2<1 #76* 88)9::<;';';=2.1/1?-382.8=-<ABC:<D
LM <dC G!+ L\.JK ?LM I!" #%aAB5,8YP ,23V(+/ &(BP1?;GA&X
#76* 88)9::<;';';=2?5,V2<(=-<ABG:3D . #7]+5 (+R+/1& #76* 88)9::<;';';=2<AZ8/(R+5 (=-<ABC:3D
Specification/Design Tools
supporting UML
lAZ8;G(&1Q'5 1Ik<8>= % <3 <C.++ + .¡+¢££¤¥. 3 ¦3¤§3¨£.©
l81+&/,5 4NlAZ8;G(+&1P}5 -= ª .«¢¬x?® 3¯3¡ .¡+¢££¤.°¤¥?±²3® ¤§3¨£.© l+YR (2<1}5 -= ³..3¥.+´µ<¥²® <3 .¡+¢££¤¡3.?¥.¤§3¨£.©
T1 ¶+( 2x}5 2<8&VBP15?82elAZ8;G(+&1 % ?¨G¡3<¥3
.¡+¢££¤²¤§3¨£¥. 3£.©
,23,A5lAZ8;'(&1xTAA/2x}5 -= ¸·²¥²3x¹¯3²±º33 .¡+¢££¤»?²¥²33´¥.¤§3¨£.© ,23,AaA&)= ¸·²¥²C³3.<¥¥²33?± .¡+¢££¤»?²¥²?¤§3¨£.©