فروش یا انتشار این ترجمه منوط به داشتن مجوز لازم از صاحب حقوق اثر است.
صفحه PDF 43
SYSTEMS DEVELOPMENT METHODS
Optionهای بسیاری برای Develop کردن Information System وجود دارد، اما محبوبترین Alternativeها عبارتاند از Structured Analysis که Traditional Methodی است و همچنان بهطور گسترده استفاده میشود؛ Object-Oriented (O-O) Analysis که Approach جدیدتری است و بسیاری از Analystها آن را ترجیح میدهند؛ و Agile Methodها که Adaptive Method نیز نامیده میشوند و جدیدترین Trendهای Software Development را شامل میشوند. Figure 1-25 Overviewی از این سه Method ارائه میکند که در Sectionهای بعدی بررسی میشوند.
Figure 1-25 — مقایسهٔ Structured، Object-Oriented و Agile/Adaptive Development Methods.
STRUCTURED ANALYSIS
Description: System را بر حسب Data و Processهایی که روی آن Data عمل میکنند نمایش میدهد. System Development در Phaseهایی سازماندهی میشود که Deliverable و Milestone برای اندازهگیری Progress دارند. SDLC Waterfall Model معمولاً شامل پنج Phase است. Iteration میان Phaseها، همانطور که Figure 1-27 نشان میدهد، امکانپذیر است.
Modeling Tools: Data Flow Diagram (DFD) و Process Description که در Chapter 5 توضیح داده میشوند؛ همچنین Business Process Modeling که در Part B از Systems Analyst’s Toolkit شرح داده میشود.
Pros: Traditional Methodی است که در طول زمان بسیار محبوب بوده است. به Written Documentation اتکای زیادی دارد. Iteration مکرر Phaseها میتواند Flexibility قابل مقایسه با Methodهای دیگر فراهم کند. برای Project Management Tool و Technique مناسب است.
Cons: Change میتواند Costly باشد، بهخصوص در Phaseهای بعدی. Requirementها زود تعریف میشوند و ممکن است در Development تغییر کنند. Userها شاید تا زمانی که Exampleهایی از Feature و Function را نبینند نتوانند Needهای خود را Description کنند.
OBJECT-ORIENTED ANALYSIS
Description: System را بر حسب Objectهایی میبیند که Data و Process را ترکیب میکنند. Objectها People، Thing، Transaction و Event واقعی را، همانطور که Figure 1-28 نشان میدهد، نمایش میدهند. نسبت به Structured Analysis، O-O Phaseها Interactiveتر هستند. میتوان از Waterfall Model یا Modelی استفاده کرد که Iteration بیشتری دارد، همانطور که Figure 1-29 نشان میدهد.
Modeling Tools: Object-Oriented Diagramهای مختلف، System Actor، Method و Message را نشان میدهند و در Chapter 6 توضیح داده میشوند. Business Process Modeling نیز در Part B از Systems Analyst’s Toolkit توضیح داده میشود.
Pros: بهآسانی با Object-Oriented Programming Languageها Integrate میشود. Code حالت Modular و Reusable دارد و میتواند Cost و Development Time را کاهش دهد. Maintain و Expand کردن آسان است، زیرا Objectهای جدید را میتوان با Inherited Propertyها Clone کرد.
Cons: Method نسبتاً جدیدتری است و ممکن است Development Team Memberها با آن آشنایی کمتری داشته باشند. Interaction میان Object و Class در Systemهای بزرگ میتواند Complex شود.
AGILE/ADAPTIVE METHODS
Description: بر Team-Based Effort شدید تأکید دارد، همانطور که Figure 1-30 و Figure 1-31 نشان میدهند. Development Process را به Cycle یا Iterationهایی تقسیم میکند که Functionality اضافه میکنند. هر Iteration در یک Process پیوسته Design، Build و Test میشود. تلاش میکند Major Riskها را با Incremental Stepهای کوتاهمدت کاهش دهد. معمولاً از Spiral Model مانند Figure 1-32 استفاده میکند.
Modeling Tools: Toolهایی که Communication را تقویت میکنند، مانند Collaborative Software، Brainstorming و Whiteboard. Business Process Modeling که در Part B از Systems Analyst’s Toolkit توضیح داده میشود، با Agile Methodها بهخوبی کار میکند.
Pros: در برخورد با Change بسیار Flexible و Efficient است. بر Team Interaction و مجموعهای از Community-Based Valueها تأکید دارد. Deliverableهای مکرر Project را دائماً Validate و Risk را کاهش میدهند.
Cons: Team Memberها به Level بالایی از Technical Skill و Communication Skill نیاز دارند. کمبود Structure و Documentation میتواند Risk Factor ایجاد کند. Overall Project ممکن است با تغییر User Requirementها دچار Scope Change شود.
صفحه PDF 44
اگرچه بیشتر Projectها از یکی از این Approachها استفاده میکنند، Mix and Match کردن Methodها برای بهدستآوردن Perspective بهتر غیرمعمول نیست. علاوه بر این سه Development Method اصلی، برخی Organizationها Approach داخلی خود را Develop میکنند یا از Techniqueهای ارائهشده توسط Software Supplier، CASE Tool Vendor یا Consultant استفاده میکنند. Alternativeهای بسیاری وجود دارد و بیشتر IT Expertها موافقاند هیچ Systems Development Method واحدی در همهٔ Caseها بهترین نیست. Approachی که برای یک Project خوب کار میکند ممکن است در Situation دیگر Disadvantage یا Risk بزرگی داشته باشد. نکتهٔ مهم این است که Systems Analyst، Methodهای مختلف و Strength و Weakness هر Approach را Understanding کند.
صرفنظر از Development Strategy، People، Task، Timetable و Cost باید بهطور Effective Manage شوند. Projectهای Complex میتوانند دهها Person، صدها Task و هزاران Dollar را شامل شوند. Project Management، Process مربوط به Planning، Scheduling، Monitoring، Controlling و Reporting دربارهٔ Development یک Information System است. Chapter 3، Project Management Tool و Technique را با Detail توضیح میدهد.
Structured Analysis
Structured Analysis یک Traditional Systems Development Technique است که Time-Tested و Easy-to-Understand است. Structured Analysis از مجموعهای از Phaseها به نام Systems Development Life Cycle (SDLC) برای Plan، Analyze، Design، Implement و Support کردن Information System استفاده میکند. با وجود اینکه Structured Analysis سالها پیش شکل گرفت، همچنان یک Systems Development Method محبوب است. Structured Analysis بر Overall Plan مشابه Blueprint ساخت Building مبتنی است؛ بنابراین Predictive Approach نامیده میشود.
Structured Analysis از مجموعهای از Process Modelها برای Description گرافیکی System استفاده میکند. چون بر Processهایی تمرکز دارد که Data را به Information مفید Transform میکنند، Structured Analysis یک Process-Centered Technique نامیده میشود. علاوه بر Modeling Processها، Structured Analysis به Data Organization and Structure، Relational Database Design و User Interface Issue نیز میپردازد.
Process Model، Dataای را نشان میدهد که به System Process وارد و از آن خارج میشود. داخل هر Process، Input Data توسط Business Ruleهایی Transform میشود که Output تولید میکنند. Figure 1-26 یک Process Model ساختهشده با Visible Analyst، یک Software Development Tool محبوب، را نشان میدهد. Model که School Registration System را نمایش میدهد، Data Flow Diagram (DFD) نامیده میشود، زیرا از Symbol و Shapeهای مختلف برای نمایش Data Flow، Processing و Storage استفاده میکند. در Chapter 5 دربارهٔ DFD بیشتر خواهید آموخت و میتوانید Video Learning Session مربوط به DFD و کاربرد آن بهعنوان Modeling Tool را ببینید.
Structured Analysis از SDLC برای Plan و Manage کردن Systems Development Process استفاده میکند. SDLC، Activity و Functionهایی را Description میکند که همهٔ Systems Developerها صرفنظر از Approach انتخابی انجام میدهند. در Waterfall Model، Result هر Phase، Deliverable یا End Product نامیده میشود و به Phase بعدی Flow میکند.
برخی Analystها Built-In Structure مربوط به SDLC را Disadvantage میدانند، زیرا Waterfall Model بر Interactivity میان Phaseها تأکید ندارد. این Criticism زمانی معتبر است که SDLC Phaseها بیش از حد Rigid دنبال شوند. بااینحال، Adjacent Phaseها معمولاً Interaction دارند.
Figure 1-26 — این Screen از Visible Analyst یک Process Model برای School Registration System نشان میدهد. Process با عنوان REGISTER STUDENTS، Input Data را از دو Source میپذیرد و آن را به Output Data تبدیل میکند.
VIDEO LEARNING SESSIONS: برای Information بیشتر دربارهٔ DFD Symbolها و Diagramها و نیز Project Management به Management Information Systems CourseMate Web Site بروید و Video Learning Sessionهای این Book را مشاهده کنید. این Sessionها به Understanding Key Conceptها، Practice Skill و Check کردن Work کمک میکنند.
صفحه PDF 45
23
Phase 1 — Systems Planning
Systems Development Methods
همانطور که خطهای نقطهچین در Figure 1-27 نشان میدهند، Phaseهای مجاور معمولاً با یکدیگر Interaction دارند و Interaction میان چند Phase نیز غیرمعمول نیست. برخی Analystها Waterfall Model را مانند جریان دوطرفهٔ آب در نظر میگیرند که بر Iteration و User Input تأکید دارد. اگر Traditional Model به این شیوه استفاده شود، آنقدر که در نگاه اول به نظر میرسد با Agile Methodها متفاوت نیست.
مدل SDLC معمولاً پنج مرحله دارد که در ادامه توضیح داده میشوند: Systems Planning، Systems Analysis، Systems Design، Systems Implementation و Systems Support and Security.
SYSTEMS PLANNING
مرحلهٔ Systems Planning معمولاً با یک درخواست رسمی به بخش IT آغاز میشود که Systems Request نام دارد و Problemها یا Changeهای موردنظر در یک Information System یا Business Process را توصیف میکند. در بسیاری از Companyها، برنامهریزی IT System بخشی جداییناپذیر از Overall Business Planning است. وقتی Managerها و Userها Business Planهای خود را تدوین میکنند، معمولاً IT Requirementهایی را نیز در نظر میگیرند که Systems Request ایجاد میکنند. Systems Request ممکن است از Top Manager، Planning Team، Department Head یا خود IT Department مطرح شود. این درخواست میتواند بسیار مهم یا نسبتاً جزئی باشد. یک درخواست بزرگ ممکن است ایجاد یک Information System جدید یا Upgrade کردن System موجود را شامل شود؛ در مقابل، یک درخواست کوچک ممکن است فقط Feature جدید یا Change در User Interface را بخواهد.
هدف این Phase انجام یک Preliminary Investigation برای ارزیابی Business Opportunity یا Problem مرتبط با IT است. Preliminary Investigation مرحلهای Critical است، زیرا نتیجهٔ آن بر کل Development Process اثر میگذارد. بخش مهمی از Preliminary Investigation، Feasibility Study است که Cost و Benefit مورد انتظار را بررسی و بر اساس عوامل Operational، Technical، Economic و Time یک Course of Action پیشنهاد میکند.
فرض کنید Systems Analyst هستید و درخواستی برای Change یا Improvement یک System دریافت میکنید. نخست باید مشخص کنید آیا اصلاً آغاز Preliminary Investigation منطقی است یا نه. اغلب پیش از رسیدن به Conclusion باید دربارهٔ Business Operationها اطلاعات بیشتری بهدست آورید. پس از Investigation ممکن است متوجه شوید Information System درست Function میکند اما Userها به Training بیشتری نیاز دارند. در برخی Situationها ممکن است بهجای IT Solution، Business Process Review را پیشنهاد کنید. در Caseهای دیگر ممکن است نتیجه بگیرید Full-Scale Systems Review لازم است. اگر Development Process ادامه یابد، گام بعدی Systems Analysis Phase خواهد بود.
SYSTEMS ANALYSIS
هدف Systems Analysis Phase ساختن Logical Model برای System جدید است. اولین Step، Requirements Modeling است؛ در آن Business Processها را بررسی میکنید و Document میکنید System جدید برای برآوردهکردن نیاز Userها چه کارهایی باید انجام دهد. Requirements Modeling همان Investigation آغازشده در Systems Planning Phase را ادامه میدهد. برای Understanding System، Fact-Finding انجام میدهید و از Techniqueهایی مانند Interview، Survey، Document Review، Observation و Sampling استفاده میکنید. Resultهای Fact-Finding برای ساخت Business Model، Data and Process Model و Object Model استفاده میشوند.
Figure 1-27 — Phaseها و Deliverableهای SDLC در Waterfall Model نمایش داده شدهاند.
صفحه PDF 46
24
Chapter 1 — Introduction to Systems Analysis and Design
Systems Development Methods
Deliverable مربوط به Systems Analysis Phase، System Requirements Document است. این Document، Requirementهای Management و User، Cost و Benefitها را Description میکند و Alternative Development Strategyها را Outline میکند.
SYSTEMS DESIGN
هدف Systems Design Phase ایجاد Physical Modelی است که همهٔ Requirementهای Documentشدهٔ System را برآورده کند. در این Stage، User Interface را Design میکنید و Output، Input و Processهای لازم را مشخص میکنید. علاوه بر آن، Internal و External Controlها را Design میکنید؛ این Controlها شامل Featureهای Computer-Based و Manual هستند تا System، Reliable، Accurate، Maintainable و Secure باشد. در Systems Design Phase همچنین Application Architecture تعیین میشود؛ Programmerها از آن برای تبدیل Logical Design به Program Module و Code استفاده خواهند کرد.
Deliverable این Phase، System Design Specification است که برای Review و Approval به Management و Userها ارائه میشود. مشارکت Management و User Critical است تا دربارهٔ اینکه System جدید چه کاری انجام میدهد، چگونه آن را انجام میدهد و چه Costی خواهد داشت، Misunderstanding ایجاد نشود.
SYSTEMS IMPLEMENTATION
در Systems Implementation Phase، System جدید ساخته میشود. چه Developerها Structured Analysis بهکار ببرند و چه O-O Method، Procedure یکسان است: Programها نوشته، Test و Document میشوند و System Install میشود. اگر System بهصورت Software Package خریداری شده باشد، Systems Analystها Software را Configure و Modificationهای لازم را انجام میدهند. Objective این Phase تحویل یک Information System کاملاً Functioning و Documented است. در پایان Phase، System آمادهٔ Use است. Final Preparation شامل Convert کردن Data به Fileهای System جدید، Training Userها و انجام Transition واقعی به System جدید است.
Systems Implementation Phase همچنین Assessmentی به نام Systems Evaluation را شامل میشود تا مشخص شود System بهدرستی Operate میکند و Cost و Benefitها در محدودهٔ انتظار هستند یا نه.
SYSTEMS SUPPORT AND SECURITY
در Systems Support and Security Phase، IT Staff، System را Maintain، Enhance و Protect میکند. Maintenance Changeها Errorها را Correct میکنند و System را با Changeهای Environment، مانند Tax Rate جدید، Adapt میکنند. Enhancementها Feature و Benefit جدید فراهم میکنند. Objective این Phase، Maximize کردن Return on IT Investment است. Security Controlها از System در برابر Threatهای External و Internal حفاظت میکنند. یک System خوب باید Secure، Reliable، Maintainable و Scalable باشد. Scalable Design میتواند برای برآوردهکردن Business Requirement و Volume جدید Expand شود.
Information Systems Development همیشه Work in Progress است. Business Processها سریع Change میکنند و بیشتر Information Systemها پس از چند سال Operation نیاز به Update اساسی یا Replacement دارند.
Object-Oriented Analysis
در حالی که Structured Analysis، Process و Data را Componentهای جداگانه در نظر میگیرد، Object-Oriented Analysis، Data و Processهایی را که روی آن Data عمل میکنند در Objectها ترکیب میکند. Systems Analystها از O-O برای Model کردن Business Process و Operationهای Real-World استفاده میکنند. نتیجه، مجموعهای از Software Objectهاست که Person، Thing، Transaction و Event واقعی را Represent میکنند. سپس Programmer با استفاده از O-O Programming Language، Code ایجاد این Objectها را مینویسد.
هر Object عضو یک Class است؛ Class مجموعهای از Objectهای مشابه است. Objectها Characteristicهایی به نام Property دارند که یا از Class خود Inherit میکنند یا مخصوص خودشان است. همانطور که Figure 1-28 نشان میدهد، Class با نام PERSON شامل INSTRUCTOR و STUDENT است. چون PERSON دارای Property با نام Address است، STUDENT این Property را Inherit میکند. STUDENT همچنین Propertyای با نام Major دارد که سایر Memberهای PERSON Class آن را Share نمیکنند.
VIDEO LEARNING SESSIONS — برای آشنایی بیشتر با Object Modeling، به Management Information Systems CourseMate Web Site مراجعه و Video Learning Sessionهای این Book را پیدا کنید. این Sessionها برای Understanding Key Conceptها، Practice کردن Skillها و Check کردن Work طراحی شدهاند.
صفحه PDF 47
25
Phase 1 — Systems Planning
Systems Development Methods
در O-O Design، Processهای Built-In که Method نامیده میشوند میتوانند Propertyهای Object را Change کنند. برای مثال، در یک Web-Based Catalog Store، Objectی به نام ORDER ممکن است Propertyای به نام STATUS داشته باشد که وقتی CUSTOMER برای Place، Confirm یا Cancel کردن Order کلیک میکند، Change شود.
یک Object میتواند با استفاده از Message، Information را به Object دیگر Send کند. Message، Behavior یا Information مشخصی را از Object دیگر Request میکند. برای Example، ORDER Object ممکن است Messageی به CUSTOMER Object بفرستد و Shipping Address را Request کند. CUSTOMER Object پس از دریافت Message، Information را Supply میکند. ORDER Object قابلیت Send کردن Message را دارد و CUSTOMER Object میداند هنگام دریافت Message چه Actionهایی انجام دهد. O-O Analysis از Object Model برای Represent کردن Data و Behavior و نشاندادن اینکه Objectها چگونه بر یکدیگر اثر میگذارند استفاده میکند. با Description کردن Object و Methodهای لازم برای Support یک Business Operation، System Developer میتواند Componentهای Reusable طراحی کند که Systems Implementation را سریعتر و Development Cost را کمتر میکنند.
Object-Oriented Methodها معمولاً Seriesی از Analysis و Design Phaseها را دنبال میکنند که مشابه SDLC هستند، هرچند دربارهٔ Number و Name این Phaseها توافق کمتری وجود دارد. در O-O Model، Phaseها Interactiveتر هستند. Figure 1-29 یک System Development Model را نشان میدهد که در آن Taskهای Planning، Analysis و Design بهطور Continuous با یکدیگر Interaction دارند تا Prototypeهایی تولید کنند که قابل Test و Implement هستند. Result، Interactive Modelی است که میتواند Business Processهای Real-World را با Accuracy نمایش دهد.
O-O Methodology محبوب است زیرا Transition آسانی به O-O Programming Languageهایی مانند Java، Smalltalk، C++، Python و Perl فراهم میکند. Chapter 6، O-O Analysis و Design را همراه با Description دقیق Term، Concept، Tool و Techniqueهای O-O پوشش میدهد.
Agile Methods
Development Techniqueها در طول زمان Change میکنند. Structured Analysis یک Approach سنتی است و Agile Methodها جدیدترین Development Approach هستند. Structured Analysis برای Information System یک Overall Plan میسازد، همانطور که Contractor ممکن است برای ساخت Building از Blueprint استفاده کند. Agile Methodها در مقابل تلاش میکنند System را Incrementally Develop کنند: Seriesی از Prototypeها ساخته میشود و دائماً بر اساس User Requirementها Adjust میشود. با ادامهٔ Agile Process، Developerها Versionهای قبلی را Revise، Extend و Merge میکنند تا Final Product شکل بگیرد. Agile Approach بر Continuous Feedback تأکید میکند و هر Incremental Step تحت تأثیر چیزی است که در Stepهای قبلی آموخته شده است.
هرچند Iterative Development در Software Development نسبتاً جدید است، Concept آن را میتوان تا شرکتهای خودروسازی ژاپنی دنبال کرد که با Flexible Manufacturing System توانستند Productivity را افزایش دهند؛ در آن محیط، Team-Based Effort و Short-Term Milestone به حفظ Quality و پایین نگهداشتن Cost کمک میکرد. Agile Methodها Following گسترده و Community بزرگی از Userها بهدست آوردهاند، همانطور که Figure 1-30 در صفحهٔ بعد نشان میدهد.
Figure 1-28 — Class با نام PERSON شامل Objectهای INSTRUCTOR و STUDENT است که Propertyهای خود و Inherited Propertyها را دارند. متنهای داخل Figure: PERSON، Inherited Properties، Other Properties، INSTRUCTOR، STUDENT، Name، Address، Social Security Number، Office Location، Office Telephone، Date Hired، Major، GPA و Adviser.
Figure 1-29 — در O-O Development Methodها اغلب Interactive Model استفاده میشود. در این Model، Taskهای Planning، Analysis و Design بهطور Continuous با یکدیگر Interaction میکنند. عناصر شکل شامل Planning، Analysis، Design، Prototypes و Testing هستند.
برای آشنایی بیشتر با Agile Systems Development Methodها، Management Information Systems CourseMate Web Site و On the Web Links این Chapter را ببینید و Agile Methods را پیدا کنید.
صفحه PDF 48
Agile Methodها معمولاً از Spiral Model استفاده میکنند که مجموعهای از Iteration یا Revision را بر اساس User Feedback نمایش میدهد. با ادامهٔ Process، Final Product بهتدریج Evolve میشود. Agile Approach به Interactivity شدید میان Developer و Individual User نیاز دارد و با Overall Objective آغاز نمیشود. در عوض، Agile Process، End Result را تعیین میکند. طرفداران Spiral Model معتقدند این Approach، Risk را کاهش و Software Development را سریعتر میکند.
Spiral Model نخستین بار در دههٔ 1990 توسط Barry Boehm، Professor شناختهشدهٔ Software Engineering، پیشنهاد شد. او بیان کرد هر Iteration یا Phase از Model باید Goal مشخصی داشته باشد که توسط User یا Client Accept، Reject یا Change شود. بنابراین هر Iteration، Feedback و Enhancement ایجاد میکند و Team را قادر میسازد به Overall Project Goal برسد. معمولاً هر Iteration در Spiral Model شامل Planning، Risk Analysis، Engineering و Evaluation است، همانطور که Table موجود در Figure 1-31 نشان میدهد. Iterationهای تکراری مجموعهای از Prototypeها تولید میکنند که به Finished System تکامل مییابند. توجه کنید این Phaseها شبیه SDLC Taskها هستند که آنها نیز میتوانند Iterative باشند.
Adaptive Variation و Related Methodهای بسیاری وجود دارند و بیشتر IT Developerها انتظار دارند این Trend در Future ادامه یابد. دو Example، Scrum و Extreme Programming (XP) هستند که با Detail در Chapter 4، Requirements Modeling، و Chapter 11، Application Development، بحث میشوند.
هرچند Agile Methodها Popular میشوند، Analystها باید بدانند این Approachها Advantage و Disadvantage دارند. Agile Method بهطور ذاتی اجازه میدهد Developer بسیار Flexibleتر و Responsiveتر باشد، اما میتواند از Traditional Method Riskier باشد. برای Example، بدون مجموعهٔ Detailed System Requirement، بعضی Featureهای Requestشده توسط برخی Userها ممکن است با Larger Game Plan شرکت Consistent نباشند.
Potential Disadvantageهای دیگر Agile Method شامل Weak Documentation، Blurred Line of Accountability و Emphasis کم بر Larger Business Picture است. همچنین اگر درست Implement نشود، Long Series مربوط به Iterationها ممکن است Project Cost و Development Time را افزایش دهد. Bottom Line این است که Systems Analyst باید پیش از Select کردن Development Method برای Project مشخص، Pros and Cons هر Approach را Understanding کند.
Other Development Methods
IT Professionalها میدانند Key to Success، User Input است؛ قبل، حین و بعد از Develop شدن System. در طول زمان، بسیاری از Companyها دریافتند Systems Development Teamهایی شامل IT Staff، User و Manager میتوانند Work را سریعتر Complete و Result بهتر تولید کنند. دو Methodology محبوب شدند: Joint Application Development (JAD) و Rapid Application Development (RAD).
Figure 1-30 — Agile Methodها Following گسترده و Community کامل Userها را جذب کردهاند.
Figure 1-31 — Phase و Taskهای معمول در Spiral Model:
Planning: Objective، Constraint و Deliverable را تعریف کنید.
Risk Analysis: Riskها را شناسایی و Resolution قابل قبول Develop کنید.
Engineering: Prototypeای Develop کنید که همهٔ Deliverableها را شامل شود.
Evaluation: Assessment و Testing انجام دهید تا Objectiveهای Iteration بعدی Develop شوند.
صفحه PDF 49
هر دو JAD و RAD از Teamهایی متشکل از User، Manager و IT Staff استفاده میکنند. Difference این است که JAD بر Team-Based Fact-Finding تمرکز دارد که فقط یک Phase از Development Process است، در حالی که RAD بیشتر شبیه Compressed Version کل Process است. JAD، RAD و Agile Methodها با Detail بیشتر در Chapter 4 توضیح داده میشوند.
علاوه بر Methodهای این Chapter، ممکن است با Systems Development Techniqueهای دیگر مواجه شوید. اگر Systems Analyst Choice بیشتری بخواهد، میتواند از Industry کاملی از IT Software Company و Consulting Firm انتخاب کند. برای Example، Approach محبوب ارائهشده توسط Rational Group در IBM، Rational Unified Process (RUP®) نام دارد. طبق IBM، RUP® یک Flexible و Iterative Process برای Manage کردن Software Development Project فراهم میکند که میتواند Risk را Minimize کند، Predictable Result تضمین کند و High-Quality Software را On Time Deliver کند.
Option دیگر چیزی است که Microsoft آن را Microsoft Solutions Framework (MSF) مینامد و Experience مربوط به Software Development Teamهای خود را Document میکند. هرچند Microsoft Process با SDLC Phase-Oriented Approach متفاوت است، MSF Developerها همان نوع Planning را انجام میدهند، همان نوع Fact-Finding Questionها را میپرسند، با همان نوع Design و Implementation Issueها روبهرو میشوند و همان نوع Problemها را Resolve میکنند. با این Approach، MSF، Business و Organizational Context گستردهتری را که Information System Development را احاطه میکند Examine میکند.
Companyها اغلب Methodology مخصوص خود را دنبال میکنند. با استفاده از CASE Tool، IT Team میتواند Variety از Techniqueها را Apply کند، بهجای اینکه به یک Methodology واحد و Rigid محدود باشد. همانطور که Part B از Systems Analyst’s Toolkit نشان میدهد، بسیاری از CASE Toolها مجموعهٔ کامل Analysis و Modeling Tool ارائه میکنند که از Method و Strategyهای مختلف Support میکند.
صرفنظر از Development Model، لازم است People، Task، Timetable و Expense با Project Management Tool و Techniqueهای مختلف Manage شوند.
SYSTEMS DEVELOPMENT GUIDELINES
Basic Principleهای Figure 1-32 برای هر IT Project، بزرگ یا کوچک، کاربرد دارند. هرچند Method و Technique مخصوص خود را Develop خواهید کرد، این Guidelineها به شما برای Success بهعنوان Systems Analyst کمک میکنند.
FIVE BASIC SYSTEMS DEVELOPMENT GUIDELINES
1. Develop a Plan: Overall Project Plan آماده و از آن پیروی کنید. Taskها را در Logical Sequence Complete کنید. مجموعهٔ روشنی از Ground Ruleها Develop کنید و مطمئن شوید همهٔ Team Memberها آنها را بهوضوح Understanding میکنند.
2. Involve Users and Listen Carefully to Them: مطمئن شوید Userها در Development Process، بهویژه هنگام Identifying و Modeling کردن System Requirementها، Involve هستند. هنگام Interaction با Userها با دقت به گفتههای آنها گوش دهید. Chapter 4، Fact-Finding و روش بهدستآوردن بیشترین Benefit از Face-to-Face Communication را توضیح میدهد.
3. Use Project Management Tools and Techniques: تلاش کنید Project On Track بماند و از Surprise جلوگیری شود. تعداد Reasonable از Checkpoint ایجاد کنید؛ تعداد زیاد میتواند Burdensome باشد و تعداد کم Control کافی فراهم نمیکند. در Chapter 3 میآموزید چگونه از Microsoft Project برای Manage کردن Task، Allocate کردن Resource و Monitor کردن Progress استفاده کنید.
4. Develop Accurate Cost and Benefit Information: Managerها باید Cost مربوط به Develop و Operate کردن System و Value مربوط به Benefitهای آن را بدانند. باید Cost و Benefit Estimate دقیق و Realistic ارائه و در صورت نیاز Update کنید.
5. Remain Flexible: در Framework مربوط به Plan خود Flexible باشید. Systems Development یک Dynamic Process است و Overlap اغلب میان Taskها وجود دارد. Ability برای React کردن سریع بهویژه وقتی روی Systemی کار میکنید که باید Rapidly Develop شود مهم است.
Figure 1-32 — این Basic Guidelineها در سراسر Systems Development Process کاربرد دارند.
صفحه PDF 50
28
Chapter 1 — Introduction to Systems Analysis and Design
The Information Technology Department
THE INFORMATION TECHNOLOGY DEPARTMENT
بخش IT، Information Systemها را Develop و Maintain میکند. Structure بخش IT، همانند Name و جایگاه آن در Organization، در Companyهای مختلف متفاوت است. در یک Firm کوچک ممکن است یک Person همهٔ Computer Support Activity و Serviceها را انجام دهد، در حالی که یک Corporation بزرگ برای ارائهٔ Information Systems Support به افراد زیادی با Specialized Skill نیاز دارد. Figure 1-33 یک IT Organization معمول را در Companyای نشان میدهد که Networked PCها، Enterprise-Wide Databaseها، Centralized Processing و Web-Based Operation دارد.
IT Group، Technical Support ارائه میکند که شش Function اصلی را شامل میشود: Application Development، Systems Support and Security، User Support، Database Administration، Network Administration و Web Support. این Functionها Overlap قابلتوجهی دارند و در Companyهای مختلف اغلب Nameهای متفاوتی دارند.
Figure 1-33 — بسته به Size، یک IT Department ممکن است برای این Functionها Organizational Unitهای جداگانه داشته باشد یا آنها را در تعداد کمتری Team ترکیب کند. Structure نشاندادهشده شامل Director of Information Technology و Unitهای Application Development، Systems Support and Security، User Support، Database Administration، Network Administration، Web Support و Quality Assurance (QA) است.
Application Development
Application Development Group در بخش IT معمولاً Leadership و Overall Guidance را فراهم میکند، اما خود Systemها بهوسیلهٔ Teamهایی متشکل از User، Manager و IT Staff Member Develop میشوند. یک Model محبوب برای Information Systems Development، Project-Oriented Team با استفاده از RAD یا JAD است که در آن IT Professionalها Overall Coordination، Guidance و Technical Support را ارائه میکنند.
CASE IN POINT 1.2 — GLOBAL HOTELS AND MOMMA’S MOTELS
فرض کنید در IT Department شرکت Global Hotels، یک Hotel Chain چندملیتی، کار میکنید. Global Hotels چند Business Support System تخصصی دارد؛ از جمله Guest Reservations System که In-House Develop شده تا Requirementهای یک Company بزرگ با Worldwide Operation را برآورده کند. Guestها میتوانند با مراجعه به Web Site شرکت Global، که به همهٔ Major Travel Industry Siteها Link دارد، One-Stop Online Reservation انجام دهند.
Global Hotels بهتازگی Momma’s، یک Regional Chain شامل 20 Motel در غرب Canada، را Acquire کرده است. Momma’s از یک Vertical Reservations Package مناسب Small-to-Medium Business و یک Generic Accounting and Finance Package استفاده میکند. آیا Momma’s باید از Information Systemهای Global Hotels استفاده کند یا Systemهای خودش را ادامه دهد؟ در پاسخ، Issueهایی مانند Business Profile، Business Process، System Interactivity، EDI، XML، E-Commerce و Characteristicهای هر دو Information System را در نظر بگیرید. برای ارائهٔ Recommendation چه Information بیشتری به شما کمک میکند؟
صفحه PDF 51
29
Phase 1 — Systems Planning
The Information Technology Department
Systems Support and Security
Systems Support and Security برای System Hardware و Software، از جمله Enterprise Computing Systemها، Networkها، Transaction Processing Systemها و Corporate IT Infrastructure، Protection و Maintenance Serviceهای Vital فراهم میکند. این Group، Physical و Electronic Security Hardware، Software و Procedureها را Implement و Monitor میکند. همچنین Operating Systemها، Telecommunications Software و Centralized Database Management Systemها را Install و Support میکند. علاوه بر این، Technicianهای Systems Support and Security به سایر Groupهای IT Department Technical Assistance میدهند. اگر یک Site تعداد زیادی Remote Client داشته باشد، Systems Support Group اغلب Deployment Teamی دارد که Workstationها را Install و Configure میکند.
User Support
User Support، Technical Information، Training و Productivity Support در اختیار Userها قرار میدهد. User Support Function معمولاً Help Desk یا Information Center (IC) نامیده میشود. Staff بخش Help Desk، User و Managerها را برای استفاده از Application Softwareهایی مانند E-Mail، Word Processing، Spreadsheet و Graphics Package آموزش میدهد. User Support Specialistها به Questionها پاسخ میدهند، Problemها را Troubleshoot میکنند و بهعنوان مرکز تجمیع User Problem و Solution عمل میکنند.
Database Administration
Database Administration شامل Data Design، Management، Security، Backup و Access است. در Companyهای Small و Medium، ممکن است یک IT Support Person این Roleها را در کنار Dutyهای دیگر انجام دهد. صرفنظر از Company Size، Mission-Critical Database Applicationها به Continuous Attention و Technical Support نیاز دارند.
Network Administration
Business Operationها به Networkهایی وابستهاند که Company-Wide Information System را ممکن میکنند. Network Administration شامل Hardware و Software Maintenance، Support و Security است. Network Administratorها علاوه بر Control کردن User Access، Network Applicationها را Install، Configure، Manage، Monitor و Maintain میکنند. Network Administration در Chapter 10 با Detail بیشتری بررسی میشود.
Web Support
Web Support یک Technical Support Function حیاتی است. Web Support Specialistها Web Pageها را Design و Construct میکنند، Traffic را Monitor میکنند، Hardware و Software را Manage میکنند و Web-Based Applicationها را به Information Systemهای Company Link میکنند. Reliable و High-Quality بودن Web Support بهخصوص برای Companyهای فعال در E-Commerce Critical است.
Quality Assurance (QA)
بسیاری از IT Departmentهای بزرگ همچنین از Quality Assurance (QA) Team استفاده میکنند که تمام Applicationها و Systems Changeها را Review و Test میکند تا Specificationها و Software Quality Standardها Verify شوند. QA Team معمولاً Unit جداگانهای است که مستقیماً به IT Management Report میدهد.
صفحه PDF 52
30
Chapter 1 — Introduction to Systems Analysis and Design
The Systems Analyst
CASE IN POINT 1.3 — WHAT SHOULD LISA DO?
Lisa Jameson دو Job Offer دارد. یکی از Pembroke Boats، یک Boat Manufacturer با 200 Employee در شهر کوچکی در Ohio است. Pembroke IT Department ندارد و از Lisa میخواهد آن را ایجاد کند. عنوان Position، Information Coordinator است، اما او تنها IT Person شرکت خواهد بود.
Offer دوم که سالانه حدود 7,500 Dollar بیشتر Pay دارد از Albemarle Express، یک Nationwide Trucking Firm در Detroit است. Lisa در Albemarle Express بهعنوان Programmer-Analyst کار میکند و به او وعده داده شده است اگر Performance خوبی داشته باشد، در نهایت به Systems Analyst Position منتقل میشود و روی New Systems Development کار خواهد کرد. Lisa Rumorی شنیده که ممکن است Company دیگری Albemarle Express را Acquire کند، اما این Rumor قبلاً هم مطرح شده و هیچ اتفاقی نیفتاده است. Lisa چه تصمیمی باید بگیرد و چرا؟
THE SYSTEMS ANALYST
Systems Analyst، Information Systemهای Company را Investigate، Analyze، Design، Develop، Install، Evaluate و Maintain میکند. برای انجام این Taskها، Systems Analyst دائماً با User و Managerهای داخل و خارج Company Interaction دارد. در Projectهای بزرگ، Analyst بهعنوان Member یک IT Department Team کار میکند؛ در Assignmentهای کوچکتر ممکن است بهتنهایی کار کند.
بیشتر Companyها Systems Analystها را به IT Department Assign میکنند، اما Analyst ممکن است به User Area خاصی مانند Marketing، Sales یا Accounting نیز Report دهد. بهعنوان Member یک Functional Team، Analyst بهتر میتواند Needهای آن Group و نحوهٔ Support کردن Department Mission توسط Information Systemها را Understanding کند. Companyهای کوچکتر اغلب برای Systems Analysis Work در صورت نیاز از Consultant استفاده میکنند.
Responsibilities
Job یک Systems Analyst میان Business Issue و Technical Issue Overlap دارد. Analystها به Translate کردن Business Requirementها به IT Project کمک میکنند. وقتی به Systems Development Team Assign شوند، ممکن است در Document کردن Business Profile، Review کردن Business Process، Select کردن Hardware و Software Package، Design کردن Information System، Training Userها و Plan کردن E-Commerce Web Siteها نقش داشته باشند.
Systems Analyst، Projectها را Plan میکند، Schedule میسازد و Cost را Estimate میکند. برای اینکه Manager و Userها Informed بمانند، Analyst Meeting برگزار میکند، Presentation ارائه میدهد و Memo، Report و Documentation مینویسد. Systems Analyst’s Toolkit که بعد از Chapter 12 آمده، Toolهای مختلفی برای کمک به هر یک از این Skillهای مهم ارائه میکند.
Knowledge, Skills, and Education
یک Systems Analyst موفق به Technical Knowledge، Oral و Written Communication Skill، Understanding از Business Operationها و Critical Thinking Skill نیاز دارد. Educational Requirementها بسته به Company و Position بسیار متفاوتاند. در IT Marketplace با Change سریع، Systems Analyst باید Career خود را Manage کند و Planی برای Professional Development داشته باشد.
TECHNICAL KNOWLEDGE
State-of-the-Art Knowledge در Business و Technical Environmentی که سریع Change میکند بسیار مهم است. Internet Opportunityهای فراوانی برای Update کردن Technical Knowledge و Skill فراهم میکند. بسیاری از Siteها، مانند Site نشاندادهشده در Figure 1-34، راهی Convenient در اختیار IT Professionalها میگذارند تا دربارهٔ Technical Developmentها یاد بگیرند، Experienceها را Exchange کنند و برای Questionهای خود Answer بگیرند. Analystها همچنین با شرکت در Training Courseهای On-Site و Online Skillهای خود را Maintain میکنند. Networking با Colleagueها نیز راه دیگری برای همگامماندن با Developmentهای جدید است و Membership در Professional Associationها نیز اهمیت دارد.
TOOLKIT TIME — Communication Toolهای Part A از Systems Analyst’s Toolkit میتوانند به Develop کردن Report و Presentation بهتر کمک کنند. برای آشنایی بیشتر، Part A از Toolkit چهارقسمتی بعد از Chapter 12 را ببینید.
صفحه PDF 53
31
Phase 1 — Systems Planning
The Systems Analyst
COMMUNICATION SKILLS
Systems Analyst به Oral و Written Communication Skill قوی و Ability برای Interaction با People در همهٔ Levelها، از Operational Staff تا Senior Executive، نیاز دارد. اغلب Analyst باید با افراد خارج Company مانند Software و Hardware Vendorها، Customerها و Government Officialها کار کند. Analystها معمولاً IT Project Teamها را Coordinate میکنند و از Communication Skill برای Guide و Motivate کردن Team Memberها استفاده میکنند.
BUSINESS SKILLS
Systems Analyst نزدیک با Manager، Supervisor و Operational Employee کار میکند. برای Effective بودن، باید Business Operation و Processها را Understanding کند، Clear Communication داشته باشد و Business Needها را به Requirementهایی Translate کند که Programmer و Systems Developer بتوانند بفهمند. Analyst موفق Business-Oriented، Curious، Comfortable با Financial Toolها و قادر به دیدن Big Picture است. Chapter 2 با عنوان Analyzing the Business Case برخی Conceptهای Basic مانند Strategic Planning، SWOT Analysis و Feasibility Test را توضیح میدهد. همچنین Systems Analyst’s Toolkit بعد از Chapter 12، Communication و Financial Toolهایی را معرفی میکند که برای Business-Related Taskها مفیدند.
CRITICAL THINKING SKILLS
اگرچه Standard Definition واحدی وجود ندارد، بیشتر Educatorها موافقاند Critical Thinking Skill شامل Ability برای Compare، Classify، Evaluate، Recognize Pattern، Analyze Cause-and-Effect و Apply کردن Logic است. Critical Thinkerها اغلب از What-If Approach استفاده میکنند و Ability ارزیابی Thinking و Reasoning خود را دارند.
Critical Thinking Skill در IT Industry ارزشمند است؛ Employerها بهدنبال Candidateهایی هستند که این Skillها را Demonstrate کنند و به Workplace بیاورند. Figure 1-35، Site مربوط به Foundation for Critical Thinking را نشان میدهد که Resourceهای بسیاری برای Critical Thinking Community ارائه میکند.
Figure 1-34 — Web Site مربوط به TechRepublic برای IT Professionalها Support فراهم میکند. Featureها شامل Newsletter، Forum، Product Information و Searchable Knowledge Base هستند.
Figure 1-35 — Critical Thinking Community یک Nonprofit Organization است که برای Critical Thinkerها Encouragement و Resource فراهم میکند.
صفحه PDF 54
32
Chapter 1 — Introduction to Systems Analysis and Design
The Systems Analyst
EDUCATION
Companyها معمولاً از Systems Analyst میخواهند College Degree در Information Systems، Computer Science یا Business داشته باشد و معمولاً مقداری IT Experience نیز لازم است. برای Positionهای Higher-Level، بسیاری از Companyها Advanced Degree میخواهند. گاهی اگر Candidate دارای Experience، Skill یا Professional Certification قابلتوجه باشد، Educational Requirementها Waive میشوند. Part D از Systems Analyst’s Toolkit، IT Resourceهای ارزشمند بسیاری برای Personal و Professional Development معرفی میکند.
Certification
بسیاری از Hardware و Software Companyها برای IT Professionalها Certification ارائه میکنند. Certification تأیید میکند که Individual در یک Standardized Test، Level مشخصی از Knowledge و Skill را Demonstrate کرده است. Certification راهی عالی برای IT Professionalهاست تا Skill جدید یاد بگیرند و بابت Effort خود Recognition بهدست آورند. هرچند Certification تضمینکنندهٔ Competence یا Ability نیست، بسیاری از Companyها آن را Credential مهمی برای Hiring یا Promotion میدانند. دربارهٔ Certification در Chapter 12، Managing Systems Support and Security، و نیز Web Siteهای Companyهایی مانند Microsoft، Cisco Systems، Sun Microsystems و Novell میتوانید بیشتر بیاموزید.
علاوه بر Certificationهای سنتی Hardware و Software، برخی Firmها روشهایی برای Assess کردن Critical Thinking Skill بررسی میکنند، همانطور که Figure 1-36 نشان میدهد. این Skillها شامل Perception، Organization، Analysis، Problem-Solving و Decision-Making هستند. چه Formal Certification وجود داشته باشد چه نه، این Skillها برای IT Professionalها و Employerهایی که آنها را Hire میکنند بسیار Valuable هستند.
Career Opportunities
انتظار میرود Demand برای Systems Analyst همچنان Strong باقی بماند. Companyها برای Apply کردن Information Technology جدید به Systems Analyst نیاز خواهند داشت و رشد انفجاری E-Commerce نیز IT Job Growth را تقویت خواهد کرد. Position مربوط به Systems Analyst، Challenging و Rewarding است و میتواند به Top Management Position منتهی شود. با Understanding همزمان Technical و Business Issueها، Systems Analyst افق نامحدودی دارد. بسیاری از Companyها President و Senior Managerهایی دارند که Career خود را در IT Department بهعنوان Systems Analyst شروع کردهاند.
Figure 1-36 — Employerها میخواهند افرادی را Hire کنند که Logical و Effective فکر کنند. برخی Firmها روی Certification Examهایی کار میکنند که برای Measure کردن این Skillها طراحی شدهاند.
صفحه PDF 55
33
Phase 1 — Systems Planning
The Systems Analyst
مسئولیتهای Systems Analyst در Firm کوچک با Corporation بزرگ متفاوت است. آیا در Company کوچک بهتر خواهید بود یا Company بزرگ؟ بهترین Opportunity برای Experience و Professional Growth را کجا پیدا میکنید؟ هر Person در Job بهدنبال Rewardهای متفاوتی است. چه چیزی برای شما مهم خواهد بود؟
JOB TITLES
ابتدا فقط به Job Title تکیه نکنید. برخی Positionها Systems Analyst نامیده میشوند اما فقط Programming یا Technical Support را شامل میشوند. در Caseهای دیگر، مسئولیتهای Systems Analyst در Positionهایی با Titleهایی مانند Computer Specialist، Programmer، Programmer/Analyst، Systems Designer، Software Engineer و عنوانهای دیگر دیده میشوند. هنگام بررسی یک Position مطمئن شوید Responsibilityهای Job بهروشنی بیان شدهاند.
COMPANY ORGANIZATION
تا حد ممکن دربارهٔ Company و جایگاه IT Department در Organization Chart اطلاعات بهدست آورید. IT Functionها کجا و توسط چه کسی انجام میشوند؟ یک Firm ممکن است Central IT Group داشته باشد اما Systems Development Function را Decentralize کند. این Situation گاهی در Conglomerateهای بزرگ دیده میشود؛ Parent Company، Informationی را Consolidate میکند که در واقع در Subsidiary Level Develop و Manage شده است. شما ترجیح میدهید کجا کار کنید؟
COMPANY SIZE
اگر Variety بیشتر را دوست دارید، Firm کوچکتر شاید برای شما مناسبتر باشد. اما اگر میخواهید Specialize کنید، Company بزرگتر با State-of-the-Art Systemها را Consider کنید. هرچند در Company کوچکتر ممکن است Responsibility بیشتری داشته باشید، Promotional Opportunity و Financial Reward اغلب در Companyهای بزرگتر بیشتر است. همچنین ممکن است بخواهید بهعنوان Independent Consultant، بهتنهایی یا با دیگران، کار کنید. بسیاری از Consulting Firmها در ارائهٔ Service به Business Enterpriseهای کوچکتر که Expertise لازم برای Systems Development مستقل را ندارند موفق بودهاند.
CORPORATE CULTURE
علاوه بر Goal، Method و Information Systems Requirement، هر Firm دارای Corporate Culture زیرین است. Corporate Culture مجموعهٔ Belief، Rule، Tradition، Value و Attitudeهایی است که Company را Definition میکند و بر Way of Doing Business آن اثر میگذارد. برای موفقیت، Systems Analyst باید Corporate Culture و اثر آن بر Management Information را Understanding کند. Companyها گاهی Statementهایی دربارهٔ Corporate Culture در Mission Statement خود درج میکنند که در Chapter 2 توضیح داده میشود.
SALARY, LOCATION, AND FUTURE GROWTH
در نهایت Salary، Location و Prospectهای Company برای Future Growth و Success را در نظر بگیرید. Impression خود از Company و Peopleی که هنگام Interview ملاقات کردید را مرور کنید. مهمتر از همه، پیش از تصمیم دربارهٔ اینکه کدام Position برای شما بهتر است، Short-Term و Long-Term Goalهای خود را بسیار دقیق Review کنید.
CASE IN POINT 1.4 — JUST-IN-TIME AIRFREIGHT, INC.
فرض کنید IT Director در Just-in-Time Airfreight هستید و Authorization برای Hire کردن یک Systems Analyst دیگر دریافت کردهاید. این Position در Entry Level است و Person جدید به Senior Systems Analystها در Projectهای مختلف مربوط به Reservations و Human Resources System کمک میکند. با استفاده از Information این Chapter، Advertisementی Draft کنید که در The Wall Street Journal، Local Newspaperها و Online منتشر شود. میتوانید با مراجعه به monster.com یا Site مشابه Idea بگیرید. در Advertisement، Skill، Experience و Educational Requirementهای موردنظر را حتماً List کنید.
TOOLKIT TIME — Information Technology Resource Toolهای Part D از Systems Analyst’s Toolkit میتوانند برای بهدستآوردن Technical Data، پیشرفت Career و Networking با IT Professionalهای دیگر کمک کنند. برای آشنایی بیشتر، Part D از Toolkit چهارقسمتی بعد از Chapter 12 را ببینید.