Software Engineering 3156AdministriviaA Bit on Chapter 9MetricsOther MetricsActual EstimationSpecification documentInformal specificationsStructured systems analysisDFDRemaining structured systems analysis stepsOther semiformal techniquesEntity-relationship modeling (ERM)Finite state machinesPetri netsZOther formal techniquesMiscellanyService DiscoveryDNS: Domain Name ServiceDNS (II)Others (I)Others (II)Challenges for service discoveryLDAP: Lightweight Directory Access ProtocolLDAP (II)LDAP 4 UServicesActorsActor states per worldWhat does this mean for you?Software Engineering 31568-Oct-01#10: Classical Specs & Service DiscoveryPhil Gross2AdministriviaVersion 1.0 upKeep the webboard stuff goingTAs3A Bit on Chapter 9Size/cost estimation is painfulObviously necessary in the real worldWe’re puntingTake 4156 to learn details4MetricsLOC–Programming language dependent–Comments?–Tools/throwaway?–Generated code?–How do you estimate LOC?5Other MetricsFunctions points–Data processing oriented–Input, output, and master files–Degrees of influence, Technical Complexity Factors…6Actual EstimationCOCOMO and COCOMO IIBased on statistics gathered from real projectsAwful, but the best we’ve gotAimed at huge software projects7Specification documentContract between client and developerAcceptance criteria–Solution strategy–Keep track of which solutions are kept and those discarded for later justificationCost-benefit analysis8Informal specificationsXhosa!?Mostly proseEasy to screw up and make ambiguous: English sucksMy MTA example from second class9Structured systems analysisStart with Data Flow Diagrams (DFD’s)Show what happens, not howUse stepwise refinement: start with high-level DFD and work down from thereUML state diagram generalization of this10DFDAfter several iterations, quite detailed, but customer can still understandLess data-hiding than object-oriented mechanismsStill useful for formalized contracts11Remaining structured systems analysis stepsDecide, from DFD, what to computerizeDetermine details of data flowsDefine process logicDefine data storesDefine physical resources (files, organization, storage medium, etc.)Determine I/O specsDetermine sizing (CPU, size)Determine hardware requirements12Other semiformal techniquesPSL (problem statement language) and PSA (problem statement analyzer) – computer-aidedSADT (box-and-arrow-based structural analysis and design technique): more refinement than DFDSREM (Software Requirements Engineering Method, pronounced “shrem”): specify conditions for actions to occur; based on finite state machines; has been used for C3I applications by the air force13Entity-relationship modeling (ERM)Looks like a class diagram, no?Predecessor, in a sense14Finite state machinesPrecursor of UML state diagramsStill used in many low-level specification areasNotion of states and transitions formally specifiedUseful in menu-driven UI’s, system designAbove refers to 3-position combo lockHuge example in Schach for elevatorsComp Org…15Petri netsProblem: state machines are weak at handling timing issuesCan use state charts (or state diagrams)Petri nets are state-based, but have tokens in states to allow multiple transitions to happen at the same time (concurrency modeling)16ZZed, not zee!Rather formalized specification languageDifficulty outside the scope of this class–Utilizes set theory, functions, and first-order logicWe’re not covering this, but take a peek in the book17Other formal techniquesEvent-based specification: Communicating Sequential Processes [Hoare, 1985]–A little too complex for us–Nevertheless, we want to consider event models; they’ve become very commonMany others (Anna, Gist, VDM)Active theoretical research (woohoo!)18MiscellanyTesting–Walkthroughs–Inspection against checklist–Correctness-proving for formal specificationsMetrics–Size of DFD, data dictionary, etc.Challenge–Find something that the customer understands yet is good enough for a contract–Sometimes this is impossible: need technical people at customer19Service DiscoveryIt’s no longer just the web anymoreAbstraction of service from network node (or computer)Goal: find a service without hardcoding where it isUse DNS, LDAP, others20DNS: Domain Name ServicePrimary purpose: “discover” machines–“Address record”: for example, www.cs.columbia.edu = 128.59.16.149–Equivalent to an address bookSecondary purpose: advertise mail servers–“Mail server”, or MX record: cs.columbia.edu’s mail is primarily handled by ober.cs.columbia.edu21DNS (II)More recent: user-definable services, using SRV records–Domain controllers–Telephony servers–Generally done on a domain basis: “here’s the service provider for domain X”Tools for DNS–nslookup–host–numerous API’s (resolve r built into sockets)22Others (I)SIP: Session Initiation Protocol: Invented Here!*–http://www.cs.columbia.edu/~hgs/sip–Basic idea: how to find someone to communicate with–Primarily for telephony applications (Caller-ID, Call-Forwarding, etc.)Jini: distributed object-level service discovery–Appliance-aware services: embedded Java23Others (II)SLP (Service Location Protocol)–IETF attempt, generalized SIP–Less successful so far: maybe IPv6?NIS (Network Information Service)–Primarily user authentication, but can generalize–“Mirror” /etc files24Challenges for service discoveryRunning out of IP addresses to host these services on–IPv6Lack of a standardized mechanism–Each service discovery mechanism has its own target applicationsMobile services–Wireless technology: “find” the service physically25LDAP: Lightweight Directory Access ProtocolOne popular solution to general discovery requirementsVery generalized white-pages mechanism–User-definable “schemas”–Common applications are network nodes and usersBased on DAP, X.500Extremely popular–ldap.columbia.edu: try it out…–Lookups are very fast26LDAP (II)We will be using LDAP for several purposes–Discovering server and AI programs on the network–Keeping track of basic user authentication and informationLDAP server already set up on softe.cs.columbia.edu–Code examples will be covered in next week’s recitation–Don’t need the code
View Full Document