# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > تحلیل و طراحی نرم افزار > مبتدی: فاز تحلیل: سایت

## بـاران

سلام دوستان


*خلاصه:* یه برنامه نویس حرفه ای چطور یه سایت رو تحلیل می کنه؟ و خروجی کارش رو در چه قالبی ارائه می ده؟




*توضیح:* پروژه ای که به من سپرده شده تحلیل، طراحی، و پیاده سازی یه سایت هست.

فاز تحلیل رو به این صورت انجام می دم: سایت های مشابه رو نگاه می کنم، و از بخش های مختلفشون لیست بر می دارم. بعدش می خوام این لیست رو به کسی که سفارش سایت رو داده نشون بدم و ببینم کدوم بخش ها رو می خواد داشته باشه.

منظور از تحلیل سایت همینه؟ یا کار دیگه ای هم هست که باید انجام بدم؟

کلا در فاز تحلیل چه کارهایی و به چه صورت باید انجام بشه؟

در ضمن: خروجی فاز تحلیل رو در چه قالبی ارائه بدم؟ من یه فایل ورد ساده برداشتم، و اسم و آدرس هر سایت، و بخش هاش رو توش می نویسم.

----------


## aqm176

سلام و خسته نباشید.

تحلیل وب سایت به مراتب خیلی پیچیده تر از این حرفاس.

شما موارد مورد نیازتون رو باید پیدا کنید از توی پروژه ای که به شما محول شده و سپس ارتباط بین اون ها رو در قالب طراحی uml به عنوان خروجی ارائه بدید.
طراحی خیلی پیچیده ای داره، ولی یه ذره کار کنید دستتون میاد که وب چی داره و قراره چی به کاربر تحویل داده بشه، و کاربر چطوری باید باهاش کار کنه و و و که هر قسمتش نکاتی داره بسیار.

این فقط فاز تحلیل بود، و دقا داشته باشید، تو شرکتای نرم افزاری، بیشترین پول رو مهندس تحلیل گر میگیره.

----------


## aqm176

به نظر من اول با پروژه های کوچیک شروع کنید، به خصوص وقتی که دارین تازه شروع میکنید.

اینطوری که شما اطلاعات میخواید، هنوز یه سه چهار سال کار داره تا تجربه برنامه نویسی در ذهن شما ساخته بشه

----------


## بـاران

سلام مرسی شما هم خسته نباشید.

آره در تازه کار بودن من که شکی نیست، این اولین کارمه. پروژه کوچیکیه. یه استاد یه home page می خواد، الزامات خاصی هم براش مشخص نکرده، قرار شده خودم بررسی کنم که چنین سایتی چه بخش هایی داره.

البته ایشون استاد من نیست، و یه کار جدیه، نه پروژه دانشجویی. چون کار اولم هست، می خوام اصولی انجام بدم.

حالا لطفا با توجه به تازه کار بودنم (و اینکه کامپیوتر نخوندم و مهندسی نرم افزار نمی دونم و فقط یه مقدار سی شارپ و دات نت و اینجور چیزا یاد گرفتم) در حد امکان راهنماییم کنید که کار رو بهتر انجام بدم، و خروجی فاز تحلیل رو در قالب مناسبی ارائه بدم. مرسی.

اگه متن های آموزشی خلاصه هم بهم معرفی کنید، خوبه.

----------


## بـاران

پاسخی نیست آیا؟

من 23 تا سایت رو بررسی کردم، و فکر می کنم همین کافی باشه.

فایل وردم فعلا این عناوین رو داره.

1- بخش هایی که در اکثر سایت ها تکرار شدن.

2- سایت هایی که بررسی شدن (شامل اسم استاد، آدرس سایت، و بخش های سایت).

3- سایر موارد (شامل بخش هایی که ندرتا در سایت ها ایجاد شده بودند، اما به نظرم خوبه اونها رو در سایت تعبیه کنیم).


چیزی هست که باید اضافه یا اصلاح کنم؟

عناوینی که انتخاب کردم، خوبن؟

در ضمن دارم در مورد UML می خونم، اما هنوز نمی دونم چطور برای چنین کاری ازش استفاده کنم؟ فرضا سایت زیر رو در نظر بگیرید، این سایت در فاز تحلیل چطور مدلسازی شده بوده؟

http://halcyon.usc.edu/~pk/prasannawebsite/

----------


## reza_noei

سلام

راستش من در بحث مهندسی نرم افزار سر رشته ندارم. ولی سعی میکنم کمکی کرده باشم.
کتاب Software Engineering : A Practitioner's Approach نوشته Roger S. Pressman منبع معتبری برای استفاده است مخصوصاً فصلی که به برنامه های تحت وب اختصاص داده شده. این کتاب رو مطالعه کنید خیلی کمک تون میکنه.

اول از همه شما باید بدونید که موضوع چیه. یعنی قراره وب سایتی که طراحی میکنید چه کاری انجام بده : آیا یک صفحه تبلیعاتی میخواهید؟ یا اینکه یک صفحه خبری میخواهید ایجاد کنید و ... .

دوم اینکه باید ببنید طرف شما چه چیزی از شما میخواد و اصلاً نیاز طرف شما چه چیزهایست. در غیر اینصورت باید از قوه تخیل تان استفاده کنید یا اینکه از تجربیات خودتون استفاده کنید.

بهر حال در این بین همانطور که اشاره کردید به مشاهده نمونه های پیاده سازی شده هم ممکنه نیاز داشته باشید. مخصوصاً برای طراحی قالب صفحه تان باید یک طرح خوب استفاده کنید. البته که هر طرحی باید بر اساس اصول طراحی، طراحی شده باشه (به کتاب مراجعه کنید).

دیاگرام ها به این منظور کشیده میشوند که به چگونه و چطور های انجام کارها در صفحه شما پاسخ بدهند. البته در پروژه های دانشجویی اگه کارتون زیاد بزرگ و یا جدی نیست میتونید وقتتون رو روی این کار نگذارید. 
و بجای اینکار روی کاغذ برای خودتون توضیح بدید که مثلاً برای فلان کار چه اتفاقاتی میفته و من باید به چطور برخورد کنم. و برای خودتون سناریو بنویسید. 

یه نمونه : 
کاربری که وارد سایت شده یا Sign in کرده یا نکرده اگه Sign in کرده باید چه چیزهایی رو ببینه و اگه این کار رو انجام نداده چه چیزهایی نمایش داده بشود. 

سعی کنید فکر کنید و افکارتان را به روی کاغذ بیاورد. مطالعه کتاب و درک مطالب خودش نیاز به زمان دارد و اگر وقت کافی برای مطالعه دارید که خیلی خوب است ولی اگر اینطور نیست فکر کنید که چه کار را باید چطور انجام دهید.

----------


## aqm176

سلام خانوم باران.

ببخشید، شما یک پاسخ با نقل قول میزدید، تا من بتونم بفهمم که جواب منو دادید.
حالا بیخیال.

اگر نرم افزار نخوندید، نمیتونید خب برنامه نویس حرفه ای بشید یا خیلی براتون سخت میشه تا اصول کامپیوتر رو تجربی بیاموزید و نتونید بازم به صورت یه رفرنس تجربیاتتونو بیان کنید.
لذا uml زبان بسیار بزرگی هستش، البته زبان شماتیک(ظاهری) ارتباطات نرم افزار خودتون و ارتباطات بین بانک اطلاعاتی هست و حتی بیشتر....

شما باید کلاس نویسی و تابع نویسی بلد باشید تا این uml و چنین زبان هایی بدردتون بخوره.
لذا اگر مشهد هستید، جلساتی رو پیش مهندس جنتی برید برای وب، که البته اونم نمیتونم به جد بگم تاثیری بذاره، چون سخت تر میشه.

به نظر من دو سال زمان میبره که تجربیات پیش پا افتاده در ذهنتون بشینه که اگه ذهنیت قوی دارید، به نظرم این دو سال ممکنه خیلی کمتر بشه.
اگر به شما شخصی نزدیک است که کامپیوتر نرم افزار میداند، بی شک برید دنبالش البته اینم بگم، قبلش اطلاعاتتون رو ببرید بالا، که نذارید بپیچوننتون.
روز خوش

لازمه بگم هنو فایلتون ناقصه.

----------


## joker

> سلام خانوم باران.
> 
> ببخشید، شما یک پاسخ با نقل قول میزدید، تا من بتونم بفهمم که جواب منو دادید.
> حالا بیخیال.
> 
> من مشهد هستم.
> اگه سوال دیگه ای داشتید میتونیم ملاقاتی داشته باشیم.
> .


خعلی باحالی :) منم چندتا سوال دارم :)

----------


## بـاران

> سلام


سلام، ممنون، مثل همیشه خیلی کمک کردید.

یه فایل شماره 2 تهیه  کردم و درش از سفارش دهنده سایت خواستم موارد زیر رو تکمیل کنه. به این  ترتیب می خوام موارد (اول) و (دوم) که گفته بودید روشن بشن.

"

اهداف وبسایت 

؟؟ 
مثال:  معرفی خودم. برقراری ارتباط (با دانشجویان ترم جاری و دانشجویانی که با من  پروژه دارند. با دانشجویان و فارغ التحصیلان خودم. با جامعه دانشجویان. با  جامعه مهندسان نرم افزار. با ؟). اطلاع رسانی (خبری). آموزش (به چه  کسانی؟). شناساندن چیزی به منظور خاص (مثلا شناساندن شرکت). تبلیغات. کسب  درآمد.

ذی نفعان وبسایت 

؟؟ 
مثال.  خودم. زمینه های فعالیتم (نام برده شوند). دانشجوهای جاری. جامعه مهندسان  نرم افزار. جامعه اساتید. همکاران قبلی و فعلی (در مقالات و ؟). دانشگاه  هایی که تا کنون در آنها فعالیت داشته ام.
توضیح: در مورد هرکدام از ذی  نفعان مختصرا توضیح داده شود که به چه صورت از این وبسایت بهره مند خواهند  شد و این وبسایت به چه صورت می تواند به آنها خدمات رسانی کند.
مثال. خودم: معرفی خودم. جذب همکاران جدید (در زمینه مقالات و ؟).
مثال. زمینه های فعالیتم: ترویج. آموزش. ؟

نیازمندی های پروژه 
این بخش (که مبنای سند نیازمندی های پروژه خواهد شد)، براساس فایل شماره یک (فایل بررسی سایت های مشابه) تکمیل شود.

؟؟ 

"
این فایل رو می خوام فردا به همراه فایل شماره یک (که شامل بخش هاییه که در پست قبلیم گفتم) براش بفرستم.

خوبه؟ پیشنهادی دارید؟




> اکثریت افراد هم از پایه دچار ضعف و نقص هستن و  میخوان فوری شروع کنن برن  توی دنیای شیرین برنامه نویسی و اپلیکیشن بنویسن.  ولی اون سوادهای پایه  خیلی مهم هستن و اگر ناقص و ضعیف بری دنبال برنامه  نویسی، اونوقت کارت سخت  تر میشه و در مسیر اینقدر به مشکلات و کم آوردن گیر  میکنی اینقدر مجبوری  وصله پینه و ماست مالی کار کنی، و حیطهء یادگیری و  توانایی هاست محدود  میشه، که شاید زده بشی خسته بشی یا اینکه بعد از چند  سال فکر کنی دیگه به  آخر خط رسیدی و دیگه حوصله یادگیری و برنامه نویسی  نداری.
> پس نمیگم حتما از قبل به تمام دانش و توانایی های پایه احاطه  داشته باشی،  ولی حداقلش همون موقع هرچی میبینی کم و کسر داری باید جدی شروع  کنی و براش  وقت و انرژی کافی بذاری که بتونی در طول یکی دو سال یا چند سال  به جایی  برسی پخی بشی نیای بعد از چند سال هنوز نتونی مثلا از منابع اصلی و   انگلیسی که توی نت ریخته استفاده کنی و مجبور باشی چندتا سوال مبتدی رو   توی فرومهای فارسی بپرسی هنوز توی مسائل تکراری و پیش پا افتاده که به شکل   های مختلف نمود میکنن گیر کنی.
> الان من تالار اندروید رو نگاه کردم مثلا  بالای 90% چنین آدمهایی و چنین  مشکلات و سوالات پیش پا افتاده ای هست که  یه سرچ توی گوگل بزنن براش ده تا  منبع و سوال و جواب و مقاله میریزه.
> کسی که نمیتونه از منابع اصلی این رشته استفاده کنه چرا میپره میخواد برنامه نویسی کنه از همون اول و خیلی زود برنامه بسازه؟
> برید یادگیری برنامه نویسی رو شروع کنید، بجای سوال کردن و دست دست کردن، و  در جریان هرچیزی دیدید مشکل دارید خب اول برید اون مشکل پایه رو روش کار  کنید! بدون طی کردن پله های قبلی هیچوقت نمیتونید برنامه نویس واقعا درست و  حسابی بشید و حیطهء دانش و بینش و توانایی شما خیلی محدود میشه کارتون در  حد بازیهای سطحی بچه هاست در قیاس با اونچه که واقعا گسترهء این علم و فن  هست. دلتون به یه مشت بازیچه و اعمال سطحی خوش میشه.
> والا خیلی از اینا که شروع میکنن مثلا میخوان برنامه نویسی کنن بنظر من  هنوز توی دانش و پایهء کارشون در ویندوز و لینوکس هم مشکل دارن باید اول  برن اصول و دانش و مهارت کار کردن با سیستم عامل رو یاد بگیرن!
> اشکال کار ملت ما همین سطحی و عجول بودنه و دست کم گرفتن چیزها همینطوری  روی هوا. دوتا کد هم مینویسن کار میکنه فکر میکنن دیگه شدن برنامه نویس و  همه چیز همینطوری به همین راحتی حله!
> حقیقت اینکه این رشته از پایه از دکمهء پاور کامپیوتر و از ویندوز و لینوکس  و خط فرمان شروع میشه و تا آخرش همه چیزش به هم ربط داره هر زمانی شما  ممکنه به هر جزیی از هر گوشهء اون نیاز داشته باشی. از اولش هم همه چیز رو  باید اصولی و با جدیت یاد گرفت به شکل علمی و درست و حسابی.


سلام مهندس، این پست شما که اتفاقی دیدمش، بهم کمک کرد. مرسی.

انگلیسی سرچ کردم و سعی کردم مطالب رو با کتاب پم باک هماهنگ کنم. الان می دونم  سند نیازمندی های پروژه، اولین تحویل دادنی فاز تحلیل هست. و این سند برای  تهیه SOW استفاده می شه.




> سلام خانوم باران.


سلام مهندس، ممنون از لطفتون. نمی دونستم اگه نقل قول بزنم براتون پیغام میاد.

من کلاس نویسی و تابع نویسی رو در حد مطالعه کتاب و انجام دادن تکالیفش، کار کردم. و امیدوارم در عمل بیشتر یاد بگیرم. اما متوجه ارتباط uml با کلاس و تابع نشدم. چه ارتباطی دارن؟ البته باید بیشتر در موردش بخونم، الان چون بهم گفتند برای چنین پروژه کوچکی نیاز به uml نداری، مطالعه در این مورد رو ادامه ندادم. کارم درست بوده؟

*لازمه بگم هنو فایلتون ناقصه.*

ممکنه بیشتر توضیح بدید؟ چطور کامل ترش کنم؟ چیا بهش اضافه کنم؟

----------


## بـاران

دیاگرام ها رو در چه مرحله ای باید رسم کنم؟

----------


## aqm176

سلام مجدد به شما.
ابتدا لازم به ذکره که من مهندس نیستم هنوز!  :لبخند گشاده!: 

ولی خب دارم میشم به امید خدا.

ببینید، کلاس ها در برنامه نویسی شامل ارتباطات پدر فرزندی هستند و حتی نیز توابع داخل آن به خاصیت های متفاوتی تعریف میشوند اعم از: public, private, protected. که هر کدام از اینها در uml درج میشن و ارتباط بینشون معلوم میشه که باید چه نوع داده هایی رو ارسال کنند و حتی، چه نوع ارتباطی باهم دارند.

این نمودار به تعریف بهتر، ساختاز ذهن شماس از این پروژه که روی کاغذ میاد.

در وب چیزهایی مثل کاربر، واکنشات، دیتابیس، امنیت و و و وجود داره که ساختاز ذهنیت شما از این پروژه باید بر طبق اینها باشه که بهترین رو پیاده سازی کنید.

به نظر من اینقدر علاقه دارید به این مباحث، کتابهایی رو معرفی میکنم که بدردتون میخوره.

1. مبانی رایانه سال دوم هنرستان کامپیوتر در سایت آموزش پرورش موجوده.
2. سیستم عامل دوم و سوم هنرستان.
3. طراحی الگوریتم از هر شخصی بود مشکل نداره، فقط لازم به ذکره که از این کتب رایگانش هم هست :چشمک: 
4. اصول برنامه نویسی هر شخصی بود.
این کتب معرفی شده مبتدی هستند در عین حال لازم و ملزم یه برنامه نویس حرفه ای. :متفکر: 

کتب زیر مهمترین کتب دانشکده کامپیوتر است. :اشتباه: 
5. سیستم عامل مقسمی
6. ساختمان داده ها

پس از تئوری خب و درک مسائل سخت و نوشتن شبه کدها که به هیچ مدل زبانی مربتط نیستند، میتونید آموزش سی شارپ ببینید، از اونجایی که جنسیت شما مونث است و دغدقه سربازی و کار و کسب آن چنانی ندارید، میتونید به سرعت خودتونو با این مسائل وفق بدید.

روز خوش  :تشویق:

----------


## aqm176

دیاگرام رو بذارید در مرحله آخر که uml یاد گرفتید.

----------


## بـاران

> سلام مجدد به شما.


سلام و مجددا از کمکتون متشکرم.

پس جریان uml اینه. با این حساب یه مطالعه ای در موردش می کنم و هرچند پروژه کوچیکه، اما دیاگرام هاش رو رسم می کنم که کارو اصولی انجام داده باشم.

راستش تا حالا به فکرم نرسیده بود در مورد سیستم عامل بخونم. حتما مطالعه می کنم.

بخاطر معرفی کتاب ها هم متشکرم.




> لازمه بگم هنو فایلتون ناقصه.


کاملش کنید لطفا.  :لبخند:  

من تا ظهر منتظر جواب شما و مهندس نوعی و بقیه دوستان هستم که بعدش این فایل ها رو ارسال کنم.

----------


## aqm176

> سلام و مجددا از کمکتون متشکرم.
> 
> پس جریان uml اینه. با این حساب یه مطالعه ای در موردش می کنم و هرچند پروژه کوچیکه، اما دیاگرام هاش رو رسم می کنم که کارو اصولی انجام داده باشم.
> 
> راستش تا حالا به فکرم نرسیده بود در مورد سیستم عامل بخونم. حتما مطالعه می کنم.
> 
> بخاطر معرفی کتاب ها هم متشکرم.
> 
> 
> ...


سلام.
کامل کردنش بسته به موارد مورد نیازه که چند پاسخ قبل بیان کردم.
لذا با همین مواد مورد نیاز، شما باید کار کنید.

ضمنا گفته باشم که این کار وقت میخواد که من ندارم. :ناراحت:

----------

