Download presentation
Presentation is loading. Please wait.
Published byMarie Dunnington Modified over 10 years ago
1
Software Engineering Implementation Lecture 3 ASPI8-4 Anders P. Ravn, Feb 2004
2
Overview Summary – Documents, Domains Module Specification - Java 1.Class, object (variable) 2.Generalization 3.Association 4.Dependency 5.Interface 6.Package 7.Active Class Task (thread)
3
Documents -5 1.Requirements Specification 1.1 System Definition 1.2 Problem Domain Structure 1.3 Application Domain Structure 1.3.1 Use Cases 1.3.2 Functions 1.3.3 Interfaces 1.4 Acceptance Test Specification 2.Architecture 2.1 Criteria 2.X Module Interfaces 2.T Integration Test Specification
4
Documents -6! 1.Requirements Specification 2.Architecture 3.Modules 4.Implementation 5.Test
5
Activities: application domain analysis Usage Functions System definition and Problem Domain models Interfaces Application Domain Model and Software Requirements
6
Design Problem Domain Application Domain ModelModel* Use case Actor Interface System
7
Class and Object Class name attributes methods Object: Class 1*
8
Java class class C { public boolean b; protected char c; private byte i8; C cl; public int method(int x, C y) {if (b) return y.method(7,c1); else return i8; } public C(long count) {if (count > 0) c1=new C(count-1); } }
9
Java variables/objects boolean b; character c; byte i8; short i16; int i32; long i64; float ieee32f; double ieee64f; C xx = new C(5); int[] ia = new int[250]; C[] ca = new C[10]; ca[0] = new C(ia[249]);
10
Java class class C { public boolean b; protected char c; private byte i8; C cl; public C(long count) {if (count > 0) c1=new C(count-1); } public int method(int x, C y) {if (b) return y.method(7,c1); else return i8; } }
11
Module class M { public bool b;... public int method(int x, C y) {if(b)return...;} public M(boolean b) { super(); this.b = b;} public M() {this(false);} };... M module1= new M(true), module2= new M();
12
Module Specification abstract class MSpec { public boolean b; abstract int method(int x, C y); }
13
Module Implementation class M extends Mspec { private byte i8; int i16;... public int method(int x, C y) {if(b)return...;} public M(boolean b) { super(); this.b = b;} public M() {this(false);} };... M module1= new M(true), module2= new M();
14
Generalization Superclass Subclass
15
Java extends class superclass {... }; class subclass extends superclass {... }
16
Cluster (package) related classes > name
17
Java package package driverspec; source1 abstract class DSpec{... };... source2 package drivers import driverspec.*; public class D extends DSpec {...};...
18
Aggregation the whole the parts [arity]
19
aggregation – by inclusion abstract class WholeSpec { protected P1 p1; P2 p2; Ps[] p; };... class Whole extends WholeSpec { public Whole(int p_arity) {p1= new P1(); p2= new P2(); p = new Ps[p_arity];...} }
20
aggregation – by reference abstract class WholeSpec { protected P1 p1; P2 p2; Ps[] p; };... class Whole extends WholeSpec { public Whole(P1 p1, P2 p2, Ps[] p) {this.p1= p1; this.p2= p2; p = new Ps[p.length];...} }
21
Association [name] A B [arity]
22
association – by reference class ASpec { protected B b; };... class A extends ASpec { public A(B b) {this.b = b;} public void setb(B b) {this.b = b;} }... A a; B b; a = new A(nil); b = new B(a); a.setb(b);
23
Interface Class and Dependency IRow ImageHydraulics use > IRow use realise
24
Java interface interface IRow { // methods only ! } class Image implements IRow {... } IRow Image realize
25
Start and Parameters class System { public static final int MAX = 10; public static int ACTUAL; public static void main(String[] args) { int a = Integer.parseInt(args[0]); if (a > MAX || a < 0) a = MAX; ACTUAL = a;} }
26
Exceptions class BadData extends Exception { BadData(String s) {super(”Bad data”+s+”\n”);} }; class Reader { public void read(Data d) throws BadData {... throw new BadData(”!!!”);...} }
27
Exception Handlers public void someMethod() { Data x; Reader r = new Reader(); try { r.read(x);... } catch (BadData b) {...... } finally {... } }
28
Maintaining Documentation Documentation comments Libraries Module test Applets API, Swing
29
C++ class C { public boolean b; protected char c; private byte i8; C *cl; public C(long count) {if (count > 0) c1=new C(count-1); } public int method(int x, C *y) {if (b) return y->method(7,c1); else return i8; } }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.