DOC PREVIEW
Columbia COMS 3156 - Software Engineering 3156

This preview shows page 1-2-14-15-30-31 out of 31 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

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 Gross2AdministriviaVersion 1.0 upKeep the webboard stuff goingTAs3A Bit on Chapter 9Size/cost estimation is painfulObviously necessary in the real worldWe’re puntingTake 4156 to learn details4MetricsLOC–Programming language dependent–Comments?–Tools/throwaway?–Generated code?–How do you estimate LOC?5Other MetricsFunctions points–Data processing oriented–Input, output, and master files–Degrees of influence, Technical Complexity Factors…6Actual EstimationCOCOMO and COCOMO IIBased on statistics gathered from real projectsAwful, but the best we’ve gotAimed at huge software projects7Specification documentContract between client and developerAcceptance criteria–Solution strategy–Keep track of which solutions are kept and those discarded for later justificationCost-benefit analysis8Informal specificationsXhosa!?Mostly proseEasy to screw up and make ambiguous: English sucksMy MTA example from second class9Structured systems analysisStart with Data Flow Diagrams (DFD’s)Show what happens, not howUse stepwise refinement: start with high-level DFD and work down from thereUML state diagram generalization of this10DFDAfter several iterations, quite detailed, but customer can still understandLess data-hiding than object-oriented mechanismsStill useful for formalized contracts11Remaining structured systems analysis stepsDecide, from DFD, what to computerizeDetermine details of data flowsDefine process logicDefine data storesDefine physical resources (files, organization, storage medium, etc.)Determine I/O specsDetermine sizing (CPU, size)Determine hardware requirements12Other semiformal techniquesPSL (problem statement language) and PSA (problem statement analyzer) – computer-aidedSADT (box-and-arrow-based structural analysis and design technique): more refinement than DFDSREM (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 machinesPrecursor of UML state diagramsStill used in many low-level specification areasNotion of states and transitions formally specifiedUseful in menu-driven UI’s, system designAbove refers to 3-position combo lockHuge example in Schach for elevatorsComp Org…15Petri netsProblem: state machines are weak at handling timing issuesCan 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)16ZZed, not zee!Rather formalized specification languageDifficulty outside the scope of this class–Utilizes set theory, functions, and first-order logicWe’re not covering this, but take a peek in the book17Other formal techniquesEvent-based specification: Communicating Sequential Processes [Hoare, 1985]–A little too complex for us–Nevertheless, we want to consider event models; they’ve become very commonMany others (Anna, Gist, VDM)Active theoretical research (woohoo!)18MiscellanyTesting–Walkthroughs–Inspection against checklist–Correctness-proving for formal specificationsMetrics–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 DiscoveryIt’s no longer just the web anymoreAbstraction of service from network node (or computer)Goal: find a service without hardcoding where it isUse DNS, LDAP, others20DNS: Domain Name ServicePrimary purpose: “discover” machines–“Address record”: for example, www.cs.columbia.edu = 128.59.16.149–Equivalent to an address bookSecondary 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 discoveryRunning out of IP addresses to host these services on–IPv6Lack of a standardized mechanism–Each service discovery mechanism has its own target applicationsMobile services–Wireless technology: “find” the service physically25LDAP: Lightweight Directory Access ProtocolOne popular solution to general discovery requirementsVery generalized white-pages mechanism–User-definable “schemas”–Common applications are network nodes and usersBased on DAP, X.500Extremely 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 informationLDAP 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

Columbia COMS 3156 - Software Engineering 3156

Download Software Engineering 3156
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Software Engineering 3156 and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Software Engineering 3156 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?